Print control apparatus, print control method, memory medium for storing print control program, and print control program

ABSTRACT

If a print job is designated to interrupt print, processing of any print job currently being processed is interrupted, print processing of the instructed print job is immediately performed and resumption of the interrupted print job is automatically performed afterward. Further, if an interrupt print occurs, the sending source of the interrupted print jobs (host computers, etc.) are notified that an interrupt occurred.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a printing system comprising a hostcomputer for generating print data according to user instructions and aprinting apparatus that generates image data by data processing theprint data transmitted from the host computer via a designatedtransmission medium and actually prints onto media such as paper.

2. Related Background Art

Conventionally, it has been demanded of printing systems constructed ofa host computer and a printing apparatus that the printing apparatus notonly prints on the basis of the print data generated by the hostcomputer but that information acquisition and environment setting of theprinting apparatus can be performed by the host computer.

In particular, one form is in general use due to the recent spread ofnetworks which can meet the large quantity printing needs in an officeand suppress management costs to a minimum by sharing a single,high-speed, high function printing apparatus among multiple users via anetwork. Under these conditions, managers demand that management of theprinting apparatus be performed in real time from a remote location.Also, general users demand secondary operations such as confirmation ofthe processing status or cancellation of print jobs initiated bythemselves.

SUMMARY OF THE INVENTION

Thus, many printing systems are being considered to fulfill thesedemands.

FIG. 1 is one example of a printing system that meets the above demands.It is a block diagram showing the functional construction of a printingsystem in which structures for transmission of a print job to theprinting apparatus from the host computer and information acquisitionand environment setting of the printing apparatus have been realized. Inthis printing system, a host computer 100 and a printing apparatus 150are connected via a designated printing medium 180.

The host computer 100 comprises an application 101, a printer driver102, an output buffer 103, an I/F driver 104, a utility 105, a logicchannel controller 106, and a job packet generator 107.

The application 101 provides the user with a graphic user interface andgenerates image data suited to the user's aims. The printer driver 102converts the image data produced by the application 101 to pagedescription language (hereinafter abbreviated as PDL) printable by theprinting apparatus 150. The output buffer 103 temporarily stores the PDLdata produced by the printer driver 102. The job packet generator 107adds job information of the print job in the application 101 to the PDLdata stored in the output buffer 103 and generates a job packetaccording to a designated format.

The utility 105 provides a graphic user interface by acquiringinformation concerning the printer apparatus 150 and generates amanagement packet for setting the device information of the printingapparatus 150. The utility 105 also generates a management packet forperforming requests for acquisition of the status of a print job or forcancellation of a print job.

The logic channel controller 106 controls duplications between themanagement packets generated by the utility 105 and the job packetsgenerated by the job packet generator 107 and takes on the role of atransport layer in an OSI 7 hierarchy. The I/F driver 104 sends datagenerated from the logic channel controller 106 and receives data sentfrom the printing apparatus 150.

The printing apparatus 150 comprises a logic channel controller 151, adatabase 152, a job pre-processor 153, an input buffer 154, a PDLtranslator 155, a draw buffer 156, a drawer 157, a printer engine 158,an I/F driver 159, an information manager 160, and an operation panel161.

The I/F driver 159 receives data sent from the host computer 100 andsends data generated by the logic channel controller 151. The logicchannel controller 151 analyzes data received by the I/F driver 159,distributes job packets to the job pre-processor 153 and managementpackets to the information manager 160, and sends management packetssent from the information manager 160 to the I/F driver 159.

The job pre-processor 153 receives and interprets job packets and sendsthe PDL data of the job to the input buffer 154 and the job informationto the database 152. The PDL data is stored in the order it was receivedin the input buffer 154. Job information, such as number of copies, andinformation relating to the device are stored in the database 152.

The PDL translator 155 translates the job information stored in thedatabase and the PDL data stored in the input buffer 154, converts it toan intermediate data with which the drawer 157 can draw the PDL data inreal time, and sends this intermediate data to the draw buffer 156.

The draw buffer 156 stores intermediate data for multiple pages andtransfers it to the drawer 157. The drawer 157 takes the intermediatedata from the draw buffer 156 and renders the intermediate data in realtime according to the page conveying process of the printer engine 158and sends video data to the printer engine 158. The printer engine 158physically prints onto a page based on the video data sent from thedrawer 157 using a known electrophotographic technology.

The information manager 160 receives requests for informationacquisition from the utility 105 in the form of management packets,acquires the needed information from the database 152, and replies tothe host computer via the logic channel controller 151 by changing themanagement packet. Also, it senses the completion of the job andspontaneously notifies the host computer that the job is completed bychanging the management packet.

An operation panel 161 is attached to the main body of the printingapparatus 150 and comprises a display apparatus of crystal or LED andoperation buttons. The operation panel 161 reflects user input(settings) to the database through the information manager or displaysthe condition of the device currently.

Next, the process when the printing apparatus receives a print requestfor a print job is described. When the printing apparatus 150 receives aprint request for a print job, the job pre-processor 153 recognized anew print job and allocates a job ID kept within the printing apparatusto the print job. This information is stored in the database 152. Thisinformation is then deleted when it is determined that all pages of theprint job have been interpreted, printed, and the last page has beencompletely output by the printer engine 158.

Next, the structure for cancellation of a job in this printing system isdescribed. The function for canceling a job is a function for requestingprint cancellation of a print job sent to the printing apparatus by theuser who sent the print request or the manager. Either the user or themanager requests cancellation from the user interface of the utility 105or the operation panel 161.

The utility 105 issues a management packet for requesting acquisition ofa job list within the apparatus to the printing apparatus 150. Theprinting apparatus 150 sends the list of job IDs of all print jobsrecognized within the apparatus. The utility 105 receives this list andusing the graphic user interface, displays the condition of the printjobs within the apparatus.

When the user who sent the print job or the manager of the printingapparatus requests the cancellation of a print job by selecting oneprint job from among the displayed print jobs, in other words when thejob ID of a print job for print cancellation is indicated by the graphicuser interface of the utility 105, a management packet for a jobcancellation request is generated and sent to the printing apparatus150. When the management packet for a job cancellation request is sentto the printing apparatus, the information manager 160 detects thepacket and interrupts the processing of data by invalidating, deleting,or eliminating data if PDL data or intermediate data exists on theprinting path, or concretely, on the input buffer 154, the PDLtranslator 155, the draw duffer 156, or the drawer 157.

When performing cancellation from the operation panel 161, it isdifficult to indicate the job ID specifically. Therefore, the print jobfurthest along the print path becomes the object of cancellation.Concretely, if a job is being processed by the printer engine 158, thatjob becomes the object of the cancellation. If not, a job beingprocessed by the drawer 157, or if not a job being processed by the PDLtranslator 155, becomes the object of the cancellation. In this way, thejob ID of a job found furthest along the processing steps on theprinting path becomes the cancellation object, and the job ID of thatjob is designated.

Canceling a job from the operation panel differs from canceling a jobwith the utility 105 only in the method of determining the job forcancellation, but is the same in terms of the actual cancellationprocess inside the printing apparatus. Through the above operations,optional cancellation of a job within the printing apparatus ispossible.

As a result of an increase in the usage form in which multiple usersshare a high-speed, high function printing apparatus that hasaccompanied the spreading of networks, new service needs have arisen.For general output throughput of print jobs, the output speed of theprinter engine causes a bottleneck. No matter how much the function ofthe controller is improved there is a certain limit on the time neededfor output. However, because increasing the speed of the printer engineinvites an increase in the adhesion temperature and increased costs andsize accompany an increase in sheet conveyance speed, it is difficult tomeet users' needs. Here too there is a limit to the amount of timeneeded to output a print job.

When a user wants to output a job urgently, if another print job hasalready been sent to the printing apparatus, conventionally the user hadto wait a certain amount of time until the print job sent previously wascompleted. Or, urgent output of the print job could be achieved to someextent if the user reset the printing apparatus in order to cancel theearlier print job. However, if the cancelled print job was a print jobfor another user it was necessary to inform the user that they had toreprint that print job. Therefore, in order to achieve urgent output ofa print job, an interrupt print job and a revert print function for aninterrupted print job are demanded from a printing apparatus.

The present invention was invented considering the above points. If aprint job is instructed to interrupt, the process of the print jobcurrently being processed is interrupted and print processing of theinterrupting print job is begun immediately. By reverting to theinterrupted print job automatically afterwards, there is no effect onthe print job of the other user, and urgent output of a print job ispossible.

In conventional, general printing apparatuses, it was difficult todistinguish between the interrupted print job and another normal printjob. As a result, in conventional printing apparatuses the user couldnot confirm whether there was an interrupted print job. Further, whetheror not an interrupting print was performed, the host computer simplymonitored the current printing status of the printing apparatus and didnot receive notification that an interrupting print was performed fromthe printing apparatus.

The present invention was invented in consideration of the above point.In the case that an interrupt print is performed and a print jobinstructed to interrupt is issued, notification that an interrupt printhas been performed can be sent to the origin of transmission (the hostcomputer) of the interrupted print job. In particular, it is possible toinform the host computer connected to the printing apparatus via anetwork that there has been an interruption.

Further, it is very inconvenient for the user if the printed material ofprint jobs processed by priority are output into the same output traymixed with the printed material of other print jobs.

The present invention was invented in consideration of the above point.If the printing apparatus has multiple output trays, it is possible toprevent mixing of the printed material of a print job processed bypriority with the printed material of other print jobs by outputting theprinted materials of print jobs designated as interrupting into adifferent output tray from the output tray normally used.

Further, because the interrupting print interrupts the interrupted printjob print processes and the interrupted print job is then processedagain after reversion, it is possible the total throughput of theprinting apparatus 300 will decrease by that amount. When the userabsolutely must print urgently, the user may wish to interrupt print andprint immediately, but to print in a range that will not reduce thetotal throughput of the printing apparatus.

The present invention was invented in consideration of the above point.By raising the print order of a designated print job by priority suchthat the print job already being print processed will not be cancelled,it is possible to output a print job urgently without reducing the totalthroughput of the printing apparatus.

Further, new needs have arisen as a result of high-speed, high functionprinting apparatuses being shared by multiple users accompanying thedistribution of networks.

In other words, many cases have arisen in which one wants to print alarge quantity, but because the print process takes time it ends updominating the shared printer, or because the size of the print data islarge and the analysis processes are complicated, print processing takestime and ends up dominating the shared printer.

Thus, a printer used with high frequency by multiple users may berequested to print with a timing that will not cause any problems forother users when one user wants to print a large volume but is not inany particular hurry. In order to solve such a request, it is necessaryfor the printer to have a print suspend and print resume function for aprint job.

The present invention was invented in consideration of the above point.When the printer is instructed to suspend print of a print job, theinput and storing of the print data is performed, but the print job isnot printed. When the printer is instructed to resume print of the printjob, the printer can print based on the stored print data.

Further, even if a suspended print job exists within the printingapparatus it is difficult given the above print suspend to confirm fromthe outside of the printing apparatus. As a result, there is the dangerthat the power of the printing apparatus will be shut off while thesuspended print job still remains. In that case, the memory capacity ofthe printing apparatus is compressed and the user who sent the print jobmight send an instruction to reprint because the print was notperformed.

The present invention was invented in consideration of the above point.When the power of the printing apparatus is shut off, it is possible toavoid compression of the memory capacity of the printing apparatus andresending a print job by displaying on the operation panel the fact thata print job remains suspended inside the printing apparatus.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing the functional construction of aprinting system in which structures for the transmission of a print jobfrom a host computer to a printing apparatus and information acquisitionand environment setting of the printing apparatus are realized.

FIG. 2 is a block diagram showing the functional construction of thehost computer in the printing system of the embodiment.

FIG. 3 is a block diagram showing the functional construction of thehost computer of the printing system of the embodiment.

FIG. 4 is an explanatory diagram showing the construction of a jobpacket.

FIG. 5 is a flowchart showing the operation of the job packet generator.

FIG. 6 is a flowchart showing the operation of the job packet generator.

FIG. 7 is a flowchart showing the operation of the job pre-processor303.

FIG. 8 is an explanatory diagram showing a job table.

FIG. 9 is a flowchart showing the operation of the interrupt process312.

FIG. 10 is an explanatory diagram showing the status of the job tableduring an interrupt process.

FIG. 11 is a flowchart showing the operation of the interrupt process312.

FIG. 12 is an explanatory diagram showing the status of the job tableduring an interrupt process.

FIG. 13 is a diagram showing a graphic user interface provided fordisplaying to the user a designated process (job operation mode).

FIG. 14 is a diagram showing one example of a user interface displayinga job list.

FIG. 15 is a flowchart showing the processes during job-completionnotice.

FIG. 16 is a diagram showing a user interface displaying job-completionnotification.

FIG. 17 is a diagram showing the operation panel of the printingapparatus.

FIG. 18 is a flowchart showing the operation of the job pre-processor.

FIG. 19 is an explanatory diagram showing the job table.

FIG. 20 is a flowchart showing the operation of the suspend/resumeprocess.

FIG. 21 is an explanatory diagram showing a job table.

FIG. 22 is an explanatory diagram showing a job table.

FIG. 23 is an explanatory diagram showing a job table.

FIG. 24 is a flowchart showing the processes during power-off.

FIG. 25 is a diagram showing the display of the operation panel duringpower-off.

FIG. 26 is a diagram showing the display of the operation panel duringpower-off.

FIG. 27 is a flowchart showing the operation of the promote process.

FIG. 28 is an explanatory diagram showing a job table.

FIG. 29 is a cross-section showing the inner construction of a laserbeam printer (hereinafter abbreviated as LBP).

FIG. 30 is a schematic diagram of an ink-jet recording apparatus IJRA.

FIG. 31 is a diagram showing a memory medium for recording the programcode.

FIG. 32 is a diagram showing the supply method of the program code.

FIG. 33 is a diagram showing the control structure of the printingapparatus.

FIG. 34 is a diagram showing the control structure of the host computer.

FIG. 35 is a diagram illustrating an example of a management table forjob management.

FIG. 36 is a diagram illustrating an example of intermediate data.

FIG. 37 is a diagram illustrating an example of output information.

FIG. 38 is a flowchart explaining the operation of the interrupt process312 when an interrupt notification is sent.

FIG. 39 is a diagram showing one example of the system with hostcomputer and printing apparatus.

FIG. 40 is a flowchart explaining the operation of the interrupt process312 when an interrupt notification is sent.

FIG. 41 is a flowchart explaining the operation of the promote functionwhen a promote notification is sent.

FIG. 42 is a cross-sectional structural diagram of a laser beam printer.

FIG. 43 is a block diagram of a laser beam printer.

FIG. 44 is a diagram showing one example of a management table for jobmanagement.

FIG. 45 is a diagram showing one example of the format of an interruptcommand.

FIG. 46 is a diagram showing one example of a page buffer afteranalysis.

FIG. 47 is a diagram showing one example of analysis information.

FIG. 48 is a diagram showing one example of output information.

FIG. 49 which is comprised of FIGS. 49A and 49B are flowcharts showingthe process order.

FIG. 50 is a diagram showing one example of the format of an interruptcommand in another embodiment of the present invention.

FIG. 51 is a flowchart showing the process order in another embodimentof the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Embodiment 1

An embodiment of the present invention is described in the following.

FIG. 2 and FIG. 3 are block diagrams showing the functional structure ofthe printing system of the present embodiment in which structures forperforming the sending of a print job from a host computer to a printingapparatus and information acquisition and environment setting of theprinting apparatus are realized.

This printing system comprises a host computer 200 for generating printjobs, a printing apparatus 300 for actually printing on paper based onthe print jobs, and interfaces 210 and 311 for connecting the hostcomputer 200 and the printing apparatus 300. The interfaces 210 and 311can be either local interfaces regulated by IEEE1284 or networkinterfaces such as EtherNet. The present embodiment will be explainedusing local interfaces.

In FIG. 2, the host computer 200 comprises an application 201, a printerdriver 202, an output buffer 203, an I/F driver 204, a utility 205, alogic channel controller 206, and a job packet generator 207.

In the application 201, the user operates the graphic user interface anddesignated image data is generated in response. The printer driver 202converts the image data generated by the application 201 to pagedescriptive language (PDL) data which can be printed by the printingapparatus 300. The output buffer 203 temporarily stores the PDL datagenerated by the printer driver 202. The job packet generator 207generates a designated job packet from the job information in theapplication 201 and the PDL data stored in the output buffer 203.

The utility 205 can confirm the status of the printing apparatus 300 orthe print status of a sent print job, cancel a print job, interrupt aprint job, suspend print of a print job, or resume print of a print jobwhen the user operates the graphic user interface, and generates amanagement packet in response to these operations which can beinterpreted by the printing apparatus.

The logic channel controller 206 allocates different channels for eachjob packet and management packet and multiplies transport layers in anOSI 7 hierarchy. The I/F driver 204 changes the direction of the logicdata and the electrical signals and performs exchanges with theinterface 210.

In FIG. 3, the printing apparatus comprises an I/F driver 301, a logicchannel controller 302, a job pre-processor 303, a job spooler 304, adatabase 305, a PDL translator 306, a draw buffer 307, a drawer 308, aprinter engine 309, an information manager 310, an interrupt processor312, and a job table 313.

The I/F driver 301 changes the direction of the logic data and theelectrical signals and performs exchanges with the interface 311. Thelogic channel controller 302 allocates a different channel for each jobpacket and management packet and duplicates the transport layer in anOSI 7 hierarchy. The job preprocessor 303 receives and analyzes the jobpacket and stores job information for the print job in the database 305and PDL data in the job spooler 304.

The job spooler 304 comprises a large capacity memory device such asHDD, flash memory, or DRAM and temporarily holds the PDL data of a printjob until print is completed. When it detects that the last page of theprint job has been completely ejected the PDL data of the print jobstored in the job spooler 304 is deleted or invalidated.

The processing order of print jobs is listed in a job table 313. The PDLtranslator 306 selects print jobs in the order of the processing orderwritten in the job table 313, generates intermediate data (calledtranslating) which can be drawn in real time by analyzing the PDL dataof the print job stored in the job spooler 304 and the job informationof the print job stored in the database 305, and stores thisintermediate data in the draw buffer 307.

The draw buffer 307 temporarily holds the intermediate data by singlepages until print completion. The drawer 308 obtains the intermediatedata from the draw buffer 307, renders the intermediate data in realtime depending on the page conveying process performed by the printengine 309, and transmits video data to the printer engine 309. Theprinter engine 309 physically prints onto the page based on the videodata sent from the drawer 308 using a known electrophotographictechnology.

The information manager 310 receives the management packet sent from thehost computer and either obtains information from the database 305 inresponse to a request or instructs a print cancel (cancel request), aninterruption (interrupt request), a print suspend (print suspendrequest), a print resume (print resume request), or a priority print(priority print request), or it detects the completion of the job or anerror in the device and issues a management packet for independentlynotifying the host computer 200 to that effect.

The interrupt processor 312 actually performs the interrupt when therehas been an instruction for interruption of a print job. Thesuspend/resume processor 315 actually suspends or resumes print whenthere has been an instruction for print suspend (suspend) or printresume (resume) of a print job. The promote processor 316 actuallypromotes a job when there has been an instruction to priority print(promote) a print job. The promote process is a process in which theprocessing order of a print job is raised by priority.

Data transmission between the logic channel controller 206 of the hostcomputer 200 and the logic channel controller 302 of the printingapparatus follows the protocol of regulations such as TCP/IP for anetwork or IEEE1284/IEEE1284.4 for local, and the multiplication of thetransport layer level is performed. A detailed description is omittedhere.

A job packet sent logically from the job packet generator 207 isreceived by the job pre-processor 303. The logical route through whichthe job packet flows is called a job channel. A management packet istransmitted between the utility 205 and the information manager 310. Thelogical route through which the management packet flows is called amanagement channel. Both channels can transmit in either direction, butin this embodiment the job channel may be used only in the direction ofhost computer to printing apparatus if desired. The job channel and themanagement channel are multiplied on the transport layer level of an OSI7 hierarchy, and the flow process of either channel does not influencethe other.

Next, the construction of a job packet and a management packet aredescribed. Job packets and management packets are regulated by theprotocol of the application layer and comprise a header and data (theparameter). One print job comprises several job packets. The combinationof a string of job packets comprising one print job is called a jobscript.

FIG. 4 is an explanatory diagram of the structure of a job packet.Reading down the rows are bytes, and reading across the columns are thebits of each byte. The operation codes of bytes 0 and 1 within the tableare the 2 byte (16 bit) IDs showing the packet function. The followingvalues can be taken in the job packet.

-   0×0201: job-start operation-   0×0202: job-attribute setting operation-   0×0204: PDL data transmission operation-   0×0205: job-completion operation    The block lengths of bytes 2 and 3 are used to show the    correspondence between the reply from the receiving side and the    reply request from the sending if the sending side that sent the job    packet requests a reply (reply request). For example, when the host    computer 200 sends job packets with block lengths 1, 2, and 3 in    quick succession, an error packet of block length 2 might return. In    this case the host computer can confirm that the error was generated    in the job packet sent second.

The parameter lengths of bytes 4 and 5 can show up to 0-64 K byteswithin a range for showing the byte length of the data section.

Bytes 6 and 7 show values less than the range for storing bits showingeach type of flag for job packets.

Error Flag: If this value is 1, it indicates that some sort of errorarose at the printing apparatus. This flag is added to a returningpacket sent from the printing apparatus 300 to the host computer 200.

Notice Flag: When this value is 1, it is not a reply to the requestpacket from the host computer 200 to the printing apparatus 300, butindicates that the printing apparatus 300 is notifying the host computer200 that there is some sort of notification.

Continuation Flag: When this value is 1, it indicates that remainingdata is being sent to the next job packet as all of the data could notfit in the data section. The next job packet must be set with the sameoperation code and block length as the previous packet.

Reply Request: The host computer 200 sets this at 1 when requesting areply packet to its request packet from the printing apparatus. Whenthis is 0 there will be no reply packet if the request packet isprocessed normally. If an error arises in the printing apparatus, areply packet will be sent with an error flag set at 1 regardless ofwhether the reply request is set at 0 or 1.

The user ID of bytes 8 and 9 and the password of bytes 10 and 11 are ina range used for certification when security limits are built on theoperations of the packet.

Byte 12 and following are data sections for storing additional datacorresponding to operation codes. For a job-start operation, theoperation mode of the job is recorded. The operation mode codes that canbe designated are as follows:

-   0×01: Normal print job. This print job is added to the end of the    queue of the printing apparatus as a normal print job and printed    when its turn comes around.-   0×03: Promote print job. This print job is handled as a print job    designated for promotion and is printed on a priority basis.-   0×04: Interrupt print job. This print job is handled as an    interrupting print job, all print jobs are suspended, and it is    printed on a priority basis.-   0×05: Suspend print job. This print job is handled as both an input    print job and a suspended print job; the print data of this print    job is stored, but actual printing is not performed.

FIG. 13 is a diagram showing the graphic user interface provided forindicating the designated process (job operation mode). On the screen ofFIG. 13, there are check buttons corresponding to each of the items[print (R)], [interrupt print (T)], [suspend print (E)], and [promoteprint (B)] in the column for operation mode. The check buttons areselected exclusively and any check at another button is erased when acheck is placed at a new button. If the check button of [print] ischecked, the operation mode becomes 0×01 and if the check button of[interrupt print] is checked, the operation mode becomes 0×04.

When the check button of [suspend print] is checked the operation modebecomes 0×05. When the check button of [promote print] is checked theoperation mode becomes 0×03.

For job-attribute setting operations, the job-attribute ID andjob-attribute value that the user wishes to set is stored in the datasection as additional data. The job-attribute ID shows theidentification number corresponding to the attribute or environment ofthe job and ID corresponding to the job attribute regulated by ISO-10175(DPA) is allocated in advance. Following, representative job attributesare given.

-   Job attribute ID0×0101: job name-   0×0103: job owner name-   0×016a: job size-   0×0002: job-completion notice address.    Other IDs corresponding to job attributes such as copies or    color/black and white are allocated depending on the functions of    the printing apparatus.

For PDL data transmission, PDL data is but in the data section asadditional data. The data of a single job packet can reach the maximumsize that can be stored in the parameter length, which can store up to64 KB. And data in excess is sent divided among multiple job packetshaving PDL data transmission operations. In this case a 1 appears in thecontinuation flag.

There is no additional data for a job completion operation.

Next the job packet generator 207 of the host computer is explained.FIGS. 5 and 6 are flowcharts showing the operations of the job packetgenerator 207. When print is selected in the application 201, first theprinter driver starts, and then the job packet generator starts afterthe printer driver 402 finishes storing print data in the output buffer403.

First, in step 501 it is determined whether the print job was designatedfor interrupt, suspend, or promote. Interrupt is designated when theuser designates interrupt print on the property screen of the userinterface of the printer driver 202. Suspend is designated when the userdesignates print job suspend on the property screen of the userinterface of the printer driver 202. Promote is designated when the userdesignates promote print on the property screen of the user interface ofthe printer driver 202.

When there is an interrupt designation, the operation mode is set at0×04 in step 502. When there is a suspend designation, the operationmode is set at 0×05 in step 503. When there is a promote designation,the operation mode is set at 0×03 in step 509. If there is no interrupt,suspend, or promote designation, the operation mode is set at 0×01 instep 510.

Next, in step 504, the job packet which stores the job-start code(=0×0201) in a range for storing the operation code is sent to the logicchannel controller 206. At this time, the value showing the operationmode is set in the data section of the job packet, and the print job isdesignated as a normal job, an interrupt print job, a suspend print job,or a promote print job.

Afterwards, all operations until the job-completion operation is issuedare used in the setting of the job information of the print job.

In step 505 the job name is set. the job-attribute setting operationcode (0×0202) is stored in the range for storing operation codes, a jobpacket is generated by storing the job-attribute ID (=0×0101) showingthe job name and the job name that will be the job attribute value inthe data section, and this job packet is issued to the logic channelcontroller 206.

In step 506, the job owner is set. The job-attribution setting operationcode (0×0202) is stored in the range for storing operation codes of FIG.4, a job packet is generated by storing the job attribute ID (=0×0103)showing the job owner and the owner name that will be the job attributevalue in the data section, and this job packet is issued to the logicchannel controller 206.

In step 507, the job size is set. The job-attribution setting operationcode (0×0202) is stored in the range for storing operation codes of FIG.4, a job packet is generated by storing the job attribute ID (=0×016a)showing the job size and the job data size that will be the jobattribute value in the data section, and this job packet is issued tothe logic channel controller 206.

In step 509, the address for the job completion notice of the print jobis set. Job completion is when the last page of the print job has beenejected. The job-attribution setting operation code (0×0202) is storedin the range for storing operation codes of FIG. 4, a job packet isgenerated by storing the job attribute ID (=0×0002) showing the addressfor the notice and the address for the job-completion notice that willbe the job attribute value in the data section, and this job packet isissued to the logic channel controller 206.

The address for the notice is usually the transmission address of thehost computer that sent the print job. If the sending source is a localinterface using 1284.4 and the socket ID is 0×10, the address will be“1284.4:0×20”, and if the sending source is a TCP/IP IP address of172.16.1.1 and the port number is 0×b9b9, then the address will be“TCP/IP:172.16.1.1:0×b9b9.”

In step 508 the byte size of the PDL data that should be sent issubstituted for the variable “size.”

In step 601, the size of the variable “size” is checked and compared to64K. The size of the data that can be stored in the data section of asingle job packet is limited to a maximum of 64K bytes because theparameter length of the packet header is expressed as 16 bits. As aresult, any excess data is divided among multiple job packets andissued.

If the size of the PDL data is greater than 64K, in step 605 acontinuation flag of the packet header of FIG. 5 will be set at 1 and instep 607, the PDL data transmission operation (0×0204) is stored in therange for storing operation codes in FIG. 5, a job packet is generatedby taking 64K bytes of PDL data from the output buffer 403 and storingit in the data section, and this job packet is issued to the logicchannel controller 206. In step 608, the 64K portion sent is decreasedby “size” and the process returns to the branch at step 601.

In step 601, when the variable “size” expressing the size of the PDLdata is less than 64K, transmission of all of the PDL data is completedin the job packet having a PDL data transmission code for a single time.In this case, in step 602, the continuation flag of the packet header ofFIG. 4 is set at 0, the transmission of the PDL data is set as the finalstep, and in step 603, the PDL data transmission code (0×0204) is storedin the range for storing operation codes in FIG. 4, a job packet isgenerated by taking all of the PDL data remaining in the output buffer203 and storing it in the data section, and issuing this job packet tothe logic channel controller 206.

Finally, in step 604, a job packet is generated by storing thejob-completion code (0×0205) in the range for storing operation codes inFIG. 4, the job packet is issued to the logic channel controller 206,and the process is completed.

Next, the job pre-processor 303, which receives the job packet, isexplained.

FIG. 7 is a flowchart showing the operation of the job pre-processor303. In FIG. 7, the job pre-processor 303 is started when the printingapparatus 300 starts, and continues processing until power off of theprinting apparatus 303 thereafter.

First, in step 701, the job packet is received. When the job packet isreceived, in step 702, it is determined whether or not the operationcode of the job packet is a job-start operation code. If a job packet isreceived that has an operation code other than a job-start operationcode, this is an illegal operation and the job packet is cancelled instep 703.

If it is determined that the operation code is a job-start code, in step704, the job ID of the print job is obtained. The job ID is issuedinside the printing apparatus 300 and is allocated as a 2 byte numberand used as a key for reading and writing job information in thedatabase 305.

Next, in step 705, it is determined what the operation mode is to be bychecking the operation mode code stored in the data section of the jobpacket.

If the operation mode code is 0×01, in step 706 the job ID of the printjob is registered (added) to the job table 313. At this time, the printjob is added to the tail end of all print jobs with suspend flags of Fafter confirming the suspend flag of the last job table.

If the operation mode code is 0×04, in step 707, an instruction forinterrupt print of the print job is sent to the interrupt processor 312.At this time the job ID obtained in step 704 is also sent to theinterrupt processor 312.

If the operation mode code is 0×05, in step 716 the job ID of the printjob is registered in the job table 313. However, because this print jobis a suspend print job, its job ID is added to the tail end of the jobtable 313 and its suspend flag is set to T.

If the operation mode code is 0×03, in step 715 the job ID of the printjob is registered in the job table 313. However, because this print jobis a promote print job, it is registered next after the job ID indicatedby the pointer of the job table 313, to be explained later. If thepointer 801 is not pointing at any print job, it is inserted at the headof the job table 313.

Next, in step 708, the next job packet is received.

In step 709, it is determined whether or not the operation code of thejob packet received next is a job-attribute code. If it is ajob-attribute code, in step 710 it is registered as job information ofthe print job in the database 305. At this time, the attribute ID andthe attribute data (attribute value) stored in the data section of thejob packet and the job ID obtained in step 704 are keys.

When job-attribute setting (job information registration) is complete,the process returns to step 708 in order to receive the next job packet.

In step 711, it is determined whether or not the operation code of thejob packet received is a PDL data transmission code. If it is a PDL datatransmission code, in step 712 the PDL data is stored in the job spooler304. At this time, the PDL data is stored with the job ID obtained instep 704 as the key, and when it is time to retrieve the PDL data it canbe retrieved with the job ID as the key. Otherwise, a link can be formedbetween the job ID and the PDL data in the job spooler 304 and the PDLdata is stored. In order to receive the next job packet when addition tothe job spooler 304 is complete, the process returns to step 708. If theoperation code was not a PDL data transmission code it proceeds to step713.

In step 713, it is determined whether or not the operation code of thejob packet is a job-end code. If it is a job-end code, the processreturns tot he initial status of step 701 skipping one loop.

If the operation code of the job packet does not correspond to anyoperation code, it is determined that this is an illegal job packet andthe job packet is cancelled in step 714.

Through the above operations, the job pre-processor 303 allocates thejob information of the job packets to the database 303 and the PDL dataof the job packets to the job spooler 304.

Next, the job-completion notification process performed by theinformation manager 310 is explained. FIG. 15 is a flowchart showing theoperations of the job-end process performed by the information manager310. First, in step 1501, it is determined whether or not ajob-completion notification address has been set by checking the jobattributes of the print job in the data base 305 for the print job forwhich ejection of the final page has been completed.

Normally, the job packet generator 207 generates a job packet having anotification address in step 509 of FIG. 5, so that the answer in step1501 is yes. If so, in step 1502 a completion notice event is sent tothe address. The completion notice event has a packet construction asshown in FIG. 4, identical to the job packet. However, the operationcode of the completion notice event is 0×000a and the reply transmissionbit and the notice flag bit are 1. The event ID (=0×0008) indicating jobcompletion and the bin number of the eject bin into which the paper wasejected if the printing apparatus 300 has multiple ejection bins arestored in the data section.

When the completion notice even is received, the utility 205 displays apop-up dialog and informs the user that printing of the print job iscomplete using the graphic user interface.

Following is an explanation of the utility 205. The utility 205 is usedby the user to perform such operations as display of the print job listand attributes, cancellation of a print job, designation of an interruptprint job, designation of a suspend or resume print job, and designationof a promote print job.

The operations performed by the utility 205 are realized by transmittingmanagement packets between the host computer 200 and the printingapparatus 300 via management channels. Management packets, like jobpackets, have the data structure shown in FIG. 4. The contents of eachinformation of the packet headers for bytes 0-11 are also the same as injob packets. However, the operation codes differ as follows.

-   0×010b:cancel print job-   0×0123:interrupt print job-   0×010d:obtain print job list-   0×0120:suspend print job-   0×0121:resume print job-   0×0022:promote print job-   0×0105:set attributes-   0×0106:obtain attributes-   0×0110:stop printing apparatus-   0×0111:resume printing apparatus-   0×011a:reset printing apparatus.    Management packets, as opposed to job packets, are each used for    individual purposes.

When the utility 205 wants to know what print job has been sent to theprinting apparatus 300, it sends a management packet having theoperation code (0×010d) for obtain print job list along a managementchannel. An object ID=0×0102 showing the print job class of the objectdesired is stored in the data section. Thus, this management packet issent to the information manager 310 via the logic channel controller206, the I/F driver 204, the interface 210, the interface 311, the I/Fdriver 301, and the logic channel controller 302.

The information manager 310 confirms from the operation code of themanagement packet received that it is an obtain print job list code,obtains the list information of the print job stored in the database 305and replies with a reply packet that holds the list information. Thenumber of print jobs and a list of job IDs of each print job confirmedby the printing apparatus 300 is stored in the data section of the replypacket.

If each print job has a job name, owner, and size information due to jobattribute setting operations, the utility 205 can obtain detailedinformation concerning the print jobs. To do so, after obtaining theprint job list, the utility 205 sends a management packet having anoperation code (=0×0106) for obtain attributes to the printingapparatus. the job ID of the print job desired and the attribute ID ofthe attribute desired is designated in the data section of themanagement packet. For example, if the job name of a print job with jobID 1 is desired, the job ID is set at 1 and the attribute ID isdesignated 0×0101.

The information manager 310 confirms from the operation code of themanagement packet received that it is for obtain attribute, obtains theattribute of the attribute ID designated of the designated job ID fromthe database 305, and replies with a reply packet that has that valuestored in it.

FIG. 14 shows the user interface of the job list display of the utility205. In FIG. 14, the job list is displayed in an “LSHOT P-840” printingapparatus. Here only one print job exists in the printing apparatus.

The utility 205 issues a management packet having an operation code forobtain print job list of the print job, obtains the print job list,issues a management packet having an operation code for obtaining anattribute of the print job for each of the print jobs on the print joblist and obtains the attributes of each print job, and displays thisinformation.

In FIG. 14, there is one print job with job name [http://www . . . ] andthis print job is shown to be currently printing, to have an owner nameof toitoi, and a size of 16 K bytes.

The user can perform additional operations with the user interface ofFIG. 14. The user can press the right button on the mouse to move thecursor to the designated print job column displayed on the screen. Whenthe user does so, a selection screen with “cancel print job,” “interruptprint of print job,” “suspend print of print job,” “resume print ofprint job,” and “priority print of print job” is displayed, and any ofthese items can be selected.

If the user selects “cancel print job,” a management packet containingthe operation code for cancel print job in which the job ID of the printjob is stored in the data section is generated and sent to the printingapparatus 300.

If the user selects “interrupt print of print job,” a management packetholding the operation code (=0×0123) for print job interrupt is sent tothe printing apparatus 300. The job ID of the print job designated forinterrupt is stored in the data section of this management packet.

If the user selects “suspend print of print job,” a management packetholding the operation code (=0×0120) for print job suspend is sent tothe printing apparatus 300. The job ID of the print job designated forsuspend is stored in the data section of this management packet.

If the user selects “resume print of print job,” a management packetholding the operation code (=0×0121) for print job resume is sent to theprinting apparatus 300. The job ID of the print job designated forresume is stored in the data section of this management packet.

If the user selects “priority print of print job,” a management packetholding the operation code (=0×0022) for priority print job is sent tothe printing apparatus 300. The job ID of the priority print job isstored in the data section of this management packet.

Finally, the job table 313 is explained. FIG. 8 is an explanatorydiagram of the job table. The PDL translator 306 selects the print jobaccording to the processing order listed in the job table 313 andtranslates the PDL data of the selected print job.

In job table 8-1, print jobs with job IDs of 1 to 4 are registered.Thus, when the PDL translator 306 performs translation it will selectprint jobs in order from the top of the table, starting with the printjob with job ID 1, to the print job with job ID 2, to the print job withjob ID 3, and finally the print job with ID 4, and translate the PDLdata of these print jobs.

When a print job with a job ID of 5 is added to the job table, the jobpre-processor 303 adds the print job with job ID of 5 to the tail of thejob table as shown in the job table of FIG. 8-2.

When the printer engine completes ejection of the last page of the printjob with job ID of 1, the print job with job ID of 1 disappears from thetable as shown in the job table of FIG. 8-3.

In the above manner the job table 313 is used to show the processingorder of the print jobs for processing by the translator and to controlthe processing order of the print jobs.

A pointer 801 indicates for which print job the PDL translator 306 isreading and processing the PDL data. When the PDL translator 306finishes translating all of the PDL data of a print job, the pointer 801moves to indicate the print job following that print job. In FIG. 8, thePDL data of the print job with job ID 2 is being read by the PDLtranslator 306. When the PDL translator finishes translating all of thePDL data of the print job with job ID 2, the pointer 801 will nextindicate the print job with job ID 3.

The suspend flag is a flag for indicating whether or not a print job hasbeen suspended. When the suspend flag reads True (T), the print job issuspended, and when it reads False (F), the print job is not suspended.In the job tables in FIG. 8, there are no suspend print jobs and none ofthe print jobs with job IDs 1 to 5 are indicated for suspension.

Following, interrupt, suspend/resume, and promote processing areexplained.

Interrupt

First, the interrupt process is explained.

When the job pre-processor 303 recognizes an interrupt print instructionfor a print job in step 705 of FIG. 7, instructs the interrupt processorof the interrupt in step 715. At that time, it also notifies theprocessor of the job ID of the print job for interrupt.

FIG. 9 is a flowchart showing the operations of the interrupt processor312. The interrupt processor 312 first determines whether or not therehas been an interrupt instruction in step 909. If there has been aninterrupt instruction, it instructs the PDL translator 306 to suspendprocessing of the print job it is presently processing in step 901. ThePDL translator 306, so instructed, immediately suspends the translationit is currently performing.

Next, in step 902, if there is intermediate data in the draw buffer 307,this intermediate data is deleted. Deletion of the intermediate datadoes not mean the data is merely erased, it actually includes theinvalidation of that intermediate data as well. In step 903, theprocessor instructs the drawer 157 to suspend processing. Then in step904, the processor instructs the printer engine 309 to suspendprocessing. However, if the printer engine 309 is currently printing orejecting, a print jam may occur if processing is suspended. Therefore,if printing of ejection is currently underway, suspension of thoseprocesses is not suspended.

Thus, in step 911, the processor obtains from the printer engine 309 thenumber of pages of the interrupted print job for which ejection hasalready been completed, and stores it in the database 305 as jobinformation of the print job. This step may also be performed by theprinter engine 309. If so, the printer engine 309 sends the number ofpages of the interrupted print job for which ejection has already beencompleted to the information manager 310 when it receives theinstruction to suspend processing from the interrupt processor 312, andthe information manager 310 stores the information as job informationfor the print job in the database 305.

In step 905, the job ID of the instructed print job is added to the headof the job table 313. At this time, the pointer 801 moves to point atthe job ID of this print job. It was notified of this job ID by the jobpre-processor 303 along with the interrupt instruction. In this way, thenext print job for processing in the job table 313 becomes theinstructed print job.

In step 906, the PDL translator is instructed to resume processing. ThePDL translator 306 then looks at the pointer 801 in the job table 313and takes the PDL data from the job spooler 304 of the print job thatthe pointer 810 of the job table 313 is pointing at (in this case theinstructed print job) and translates. In step 907 the drawer 308 isinstructed to resume and finally in step 908 the printer engine isinstructed to resume.

FIG. 10 is an explanatory diagram showing the status of the job table313 when an interrupt was instructed. In this figure, the suspend flagshave been omitted. In job table 10-1, normal print jobs with job IDs 1-4have been sent. The insertion of the instructed print job with job ID 5will now be explained. When the interrupting print job with job ID 5 issent, the interrupt processor 312 adds the print job with job ID 5 tothe head of the job table in step 905 and the job table is altered totable 10-2.

Thus, the PDL translator 306 which has been instructed to resume, willtranslated the print jobs in the order of print job with job ID 5, printjob with job ID 1, print job with job ID 2, print job with job ID 3, andprint job with job ID 4 in order to translation the print jobs in theorder listed in the job table.

If the print job with job ID 1 is in the middle of ejection given thejob table 10-1, the number of pages for which ejection has beencompleted for the print job with job ID 1 is stored in the database 305as job information for the print job. Then, when the print job with jobID 1 comes to the head of the job table again, translation is resumed onthe PDL data of the print job by the PDL translator 306, but the drawer308 skips drawing of the pages for which ejection is complete based onthe information of the number of pages for which ejection was completedof the print job. In this way, when resumption of an interrupted printjob is performed, the apparatus can avoid duplicating pages printedbefore interruption with pages printed after interruption, and can alsoavoid printing the same page twice.

Above, it was determined whether or not to perform an interrupt processby looking at the operation mode stored in the data section of the jobpacket having a job-start code. However, it is also possible to instructan interrupt after the job has been sent as a normal job.

As described before, if the user selects “interrupt print” in the screenin FIG. 14, a management packet in which the operation code forinterrupt print job (=0×0123) is stored is sent to the printingapparatus 300. The job ID of the print job for which interrupt isinstructed is stored in the data section of this management packet.

The information manager 310 recognizes the print job interruptinstruction from the operation code of the management packet received,and instructs the interrupt processor to interrupt. The interruptinstruction in this case differs from the instruction coming from thejob pre-processor in that the interrupting print job is not a newaddition, but is a change to a print job already there. As a result, theprocess of the interrupt processor 312 is slightly different.

FIG. 11 is a flowchart explaining the operation of the interruptprocessor 312. This is almost the same as the flowchart of FIG. 9, butin step 1105 the job ID of the instructed job is moved from its originalposition to the head of the job table 313.

FIG. 12 is an explanatory diagram showing the status of the job table313 during this interrupt process. In job table 12-1, there are fournormal print jobs with job IDs 1 to 4. The process when the print jobwith job ID 4 is instructed for interrupt from the utility 205 isexplained. When the print job with job ID 4 is instructed for interrupt,the interrupt processor 312 moves the print job with job ID 4 to thehead of the job table in step 1105 of FIG. 11 and the job table changesto FIG. 12-2.

Then, the PDL translator 306, which has been instructed to resume,translates the print jobs in the order of the print job with job ID 4,print job with job ID 1, print job with job ID 2, and print job with jobID 3 in order to translate the print jobs in the order listed in the jobtable.

If the print job with job ID 1 was in the process of ejection, thenumber of pages of the print job with job ID 1 is stored in the database 305 as job information for the print job in step 1111 of FIG. 11.Then the print job with job ID 1 comes back to the head of the job tableand translation of its PDL data begins by the translator 305, but thedrawer 308 skips drawing of the pages for which ejection has beencompleted based on the job information of the number of pages of theprint job for which ejection is complete. In this way, when resumptionof an interrupted print job is performed, multiplication of the printedpages after interruption and the printed pages before interruption canbe avoided and printing of the same page twice can be prevented.

Because the printed material (printed pages) of a print job instructedfor interrupt are output after the pages of the interrupted print jobwhich was suspended midway, when the remaining pages of the interruptedprint job are output afterward they may end up being mixed with theprinted material of the interrupting print job. This is called a mixingproblem.

Therefore, because depending on the printing apparatus some have severalejection bins, by automatically changing the ejection port of theprinted material of the interrupted print job and the ejection port ofthe printed material of the interrupting print job, mixing problems canbe avoided.

Interrupt print has an effect of the interrupted print job and may causethe owner of the interrupted print job trouble. Therefore it is desiredto limit the users who can perform interrupt. The method for limitinginterrupt print is now described.

First, the method of setting a limitation for interrupt print at theoperation panel 31 of the printing apparatus 300 is explained. FIG. 17is a diagram showing the liquid crystal display (LCD) of the operationpanel 314. In the printing apparatus 300, when a print job is not beingprinted, it is possible to change each type of environment variable byoperating the operation panel 314. The user manipulates the operationpanel 314 to display the Interrupt Print Menu as shown in FIG. 17. Then,by pressing the left and right keys on the operation panel 314, “Use” or“Not Use” can be displayed and the option displayed can be saved as asetting in the environmental variables. When the setting is “Use,”interrupt can be performed, and when the setting is “Not Use,” interruptcan not be performed. FIG. 18 is a flow chart showing the operation ofthe job preprocessor when limiting interrupt is considered. The pointthat differs from the flowchart of FIG. 7, is step 1817 in which it isdetermined whether or not the setting for the environmental variable“Interrupt Print” is “Use.” If the setting is “Use” in step 1817, thejob pre-processor issues and interrupt instruction. However, if thesetting is “Not Use,” no instruction is issued, and the processorproceeds to step 1806.

In this way, by setting the environmental variable at the operationpanel, the printing apparatus can limit whether or not interrupt printcan be performed.

Next, the method for allowing only, for example, the manager tointerrupt print is explained. First, attributes for a manger user ID andpassword are set as attributes of the printing apparatus 300 and storedin the database 305. These are each optional figures that can beexpressed in 2 bytes. These attributes are set from the utility 205 orthe operation panel during installation of the printing apparatus 300.

Then, when a print job is sent to the printing apparatus 300, aninterrupt instruction for the print job will be determined to be validand the job preprocessor 303 will instruct the interrupt processor 312to interrupt only in the case that the manager user ID and the managerpassword are identical to the user ID and the password (bytes 8-11 ofFIG. 4) of the job packet having the job-start code.

If the manager instructs an interrupt at the printer driver 202, thepop-up dialog is displayed and entry of the user ID and password issought. Then, these input values are used when a job packet is generatedhaving a job-start code by the job packet generator 207 and stored inthe range for storing the user ID and password of the job packet.

In this way interrupt instruction can be limited to certain users.

Next, a method for allowing certain other users other than the managerto perform interrupt print is explained. First, an attribute of a userID and password list for which interrupt instruction are allowed iscreated and stored in the database 305. Changes to the attribute valuesof this attribute, for example additions of a user ID and password tothe list, can be made by the manager from the utility 205 or theoperation panel 315.

Then, if the user instructs an interrupt print from the printer driver202, the pop-up dialog is displayed and input of a user ID and passwordis sought. Then, these input values are used when a job packet isgenerated having a job-start code by the job packet generator 207 andstored in the range for storing the user ID and password of the jobpacket.

When this print job is sent to the printing apparatus 300, interruptprint will be determined to be a valid instruction for the print jobonly if the user ID and password of the job packet (bytes 8-11) having ajob-start code match a user ID and password on the list, and the jobpre-processor 303 will instruct the interrupt processor 312 tointerrupt.

In this way, interrupt print can be limited only to users who areapproved for interrupt print.

Suspend/Resume

Next, the suspend/resume process is explained.

FIG. 19 is an explanatory diagram showing a job table for explaining thesuspend/resume process. Print jobs with job IDs 1-4 are registered injob table 19-1.

The suspend flag is a flag for indicating whether or not there has beena suspend instruction for a print job. If the suspend flag reads True(T), that print job is suspended. If the suspend flag reads False (F),that print job is not suspended. In job table 19-1, the print jobs withjob IDs 1-3 are not suspended, and the print job with job ID 4 is asuspend print job.

The PDL translator 306 selects print jobs in order from the top of thetable when it performs translation and translates the PDL data of theseprint jobs. However, it will not select and translate the PDL data of aprint job with a suspend flag reading T.

The job pre-processor 303 adds a print job with job ID of 5 to the tailend of the print jobs with suspend flags reading F as shown in job table19-2 when a print job with job ID of 5 is added to the job table 313. Inother words, it adds the print job with job ID of 5 between the printjob with job ID of 3 and the print job with job ID of 4. The print jobwith job ID of 5 is not suspended and has a suspend flag reading F.

When the printer engine finishes ejecting the last page of the print jobwith job ID of 1, the print job with job ID of 1 is deleted from the jobtable as shown in job table 19-3.

When the job pre-processor recognizes that the operation mode of a printjob is for suspend print, in step 716 of FIG. 7, it registers the job IDof that print job on the job table 313. However, because that print jobis a suspend print job, it adds the job ID to the tail of the job table313 and it sets the suspend flag of the print job to T.

FIG. 21 are explanatory diagrams showing the status of the job table 313during a suspend print process. In job table 21-1 there are four printjobs with job IDs 1-4. Following the process when a suspend print jobwith job ID of 5 is added is explained.

When a suspend print job with job ID of 5 is added, the jobpre-processor 303 adds the print job to the tail end of the job tableafter the print jobs with suspend flags reading F and sets the suspendflag of the print job to T. This is shown in the job table 212.

The PDL translator 306 translates the PDL data of the print jobsfollowing the processing order of the job table (in the order of printjob with job ID 1, print job with job ID 2, print job with job ID 3, andprint job with job ID 4) until only the print job with job ID 5 that wasinstructed for suspension remains. The PDL data of this suspended printjob with job ID 5 is translated by the PDL translator after a resumeinstruction is issued and the suspend flag becomes F.

So far, the process has been explained when a suspend print job isadded, but it is possible to instruct print resume of this suspendedprint job afterwards.

Now the method of instructing a resume from the utility 205 isexplained. When the user selects “Resume Print” in the user interface ofFIG. 14, a management packet having a resume print code is sent to theprinting apparatus 300. The job ID of the print job to be resumed isstored in the data section of this management packet.

The information manager 310 recognizes that this is a resume print jobfrom the operation code of the received management packet and resumesprint with the suspend/resume processor 315. At this time the job ID ofthe print job to be resumed is also sent to the suspend/resume processor315. Then the suspend/resume processor 315 resumes according to theflowchart steps 2005-2008 of FIG. 20.

The processor determines whether or not to suspend print according tothe operation mode stored in the data section of a job packet having ajob-start code, but it is also possible to instruct a print suspend of aprint job after it is sent as a normal job.

The method for performing a suspend instruction from the utility 205 isnow explained. If the user selects “Suspend Print” in the user interfaceof FIG. 14, a management packet having an operation code for suspendinstruction is sent to the printing apparatus 300. The job ID of theprint job to be suspended is stored in the data section of thismanagement packet.

The information manager 310 recognizes that this is a suspend printinstruction for the print job from the operation code of the receivedmanagement packet and instructs the suspend/resume processor 315 tosuspend print. At this time, the job ID of the print job to be suspendedis also sent to the suspend/resume processor 315. Then thesuspend/resume processor 315 resumes according to the flowchart steps2001-2005 of FIG. 20.

FIG. 20 is a flowchart for explaining the operation of thesuspend/resume processor 315 when a suspend or a resume instruction issent from the information manager 310 to the suspend/resume processor315. First, the suspend/resume processor 315 determines whether or not asuspend instruction was sent in step 2001. If there is no suspendinstruction it proceeds to step 2005.

If a suspend instruction was sent, in step 2002 the processor determineswhether or not the PDL data of the print job to be suspended has alreadybeen read. If the PDL data of the print job has already been read by thePDL translator from the job ID of the print job to be suspended sentfrom the information manager, the processor returns to step 2001 withoutsuspending. This can be determined from which print job the pointer 801of the job table 313 is indicating. In the job table, the print jobabove the print job indicated by the pointer 801 has already been read.

If the print job has not been read, in step 2003, job ID of theinstructed job is moved to the tail of the job table 313. Further, thesuspend flag of the print job is set at T in step 2004. In this way, theprint job becomes a suspend print job and is not printed until a resumeinstruction is issued for the print job.

Next, in step 2005, it is determined whether or not a resume instructionwas sent. If there is no resume instruction it returns to step 2001.

If a resume instruction was sent, in step 2006, the process checks tosee if the print job to be resumed was actually suspended. This isdetermined according to whether the suspend flag in the job table readsT or F. If it was not suspended the process returns to step 2001.

If the print job to be resumed was suspended, in step 2007 the suspendflag of the print job to be resumed is set to F and in step 2008 the jobID of the print job is moved after the last print job with a suspendflag reading F.

FIG. 22 consists of three explanatory diagrams showing the status of thejob table during a suspend process. In the job table 22-1, there arefour normal print jobs with job IDs 1-4. Next the situation when asuspend instruction for the print job with job ID 3 is sent from theutility 205 is explained. When suspend is instructed for the print jobwith job ID 3, the suspend/resume processor 315 moves the print job withjob ID 3 to the tail end of the job table in step 2002 of FIG. 21 (jobtable 22-2), and sets the suspend flag of the print job to T in step2003. This yields job table 22-3.

The PDL translator 306 processes the print jobs in the order of job IDs1, 2, and 4 in order to translate the PDL data of the print jobs in theorder listed in the job table. The suspended print job with job ID 3only remains. The PDL data of this suspended print job is thentranslated by the PDL translator after the suspend flag is set to F by aresume instruction.

In the above suspend process, the suspended print job was added to thetail of the job table 313, however there is also a method of setting thesuspend flag to T without moving the position of the job within the jobtable. Because the PDL translator translates the PDL data of the printjobs with suspend flags reading F and skips over the print jobs withsuspend flags reading T, in such a case also the suspended print jobswith suspend flags reading T remain. However, the selection process ofthe print jobs differs from that described above.

In other words, when a suspend print has been instructed for the printjob with job ID 3 in the job table 23-1 of FIG. 23, if only the suspendflag is set to T and the order of the print jobs is not changed, the jobtable appears as shown in 23-1. Thus, when translation of the print jobwith job ID 1 is completed job table 23-3 results.

If a resume instruction is then issued for the print job with job ID 3,the suspend flag is set to F and the order of the jobs is not changed.Therefore job table 23-3 results.

In the earlier suspend process the print job instructed for suspend wasadded to the tail of the job table, but with this suspend process if aresume print instruction is immediately issued for the suspended printjob printing is performed in an order close to the order when thesuspend instruction was issued.

In the above suspend processes, it is difficult to tell from the outsideof the printing apparatus 300 whether or not a suspended print jobexists within the printing apparatus 300. Therefore there is a dangerthat the power of the printing apparatus will be shut off with suspendedprint jobs remaining. If so, PDL data remains in the job spooler 304 andthe memory capacity of the job spooler 304 will be compressed. There isa danger that inconveniences such as the user issuing a reprint commandbecause print was not perform will arise. For this reason the followingprocess is performed during power off of the printing apparatus 300.

FIG. 24 is a flowchart showing the process during power off. FIGS. 25and 26 are diagrams showing examples of the display of the operationpanel 314. When the power switch in FIG. 26 is pressed the process inFIG. 24 begins. First, in step 2401 it is determined whether a suspendedprint job is present by checking the job table 313. If there is nosuspended print job power-off is performed in step 2404 and the processis completed.

If there is a suspended print job, the fact that a suspended print jobremains is displayed on the operation panel for a designated amount oftime (for example, 5 seconds) in step 2402 as in FIG. 26. In step 2403it is determined whether or not the power switch has been depressed. Ifthe power switch has been depressed, power-off is performed in step 2404and the entire process is completed.

However, if it is determined in step 2403 that the power switch has notbeen depressed, the entire process is completed without performingpower-off (without shutting off power).

Above, a case in which the power switch of the operation panel 314 hasbeen depressed is explained, however if the apparatus is such thatpower-off can be instructed from the utility 205 of the host computer200 as well, a dialog screen such as in FIG. 26 can be displayed in theuser interface of the host computer 200 according to the flowchart ofFIG. 24.

Promote

Next, priority print (promote print) of a print job is explained.

As the translation of an interrupted print job in the interrupt printprocess is once again begun after resuming, the translation process isperformed multiple times and there is the possibility that the totalthroughput of the printing apparatus 300 will be decreased by thatamount.

Therefore, by raising the priority of the printing order of a designatedprint job by an amount that does not cause the suspension of any printjob already being printed, it is possible to output a print job urgentlywithout decreasing the total throughput of the printing apparatus 300.

The job pre-processor 303 registers the job ID of a print job designatedas a promote print after the job ID of the print job indicated by thepointer 801 in the job table 313 in step 706 of FIG. 7 when it receivesa promote print job. If the pointer 801 is not pointing at any print jobthe instructed print job is inserted at the head of the job table 313.

It is determined whether or not to perform a promote process accordingto the operation mode stored in the data section of a job packet havinga job-start code, but it is also possible to instruct a promote printafter sending a print job as a normal print job.

The method in which the user issues a promote instruction from theutility 205 is explained below. When the user selects “Promote Print”from the user interface in FIG. 14, a management packet having anoperation code for promote print is sent to the printing apparatus 300.The job ID of the print job designated for promote is stored in the datasection of this management packet.

The information manager 310 recognizes the promote instruction of theprint job from the operation code of the received management packet andinstructs the promote processor 316 of the promote print. At this timethe job ID of the print job to be promoted is also sent to the promoteprocessor.

FIG. 27 is a flowchart showing the operation of the promote processor316. The promote processor 316 first determines if there has been apromote instruction in step 3001. If there is no promote instruction, itreturns to step 3001 and waits for a promote instruction. A promoteinstruction is sent to the promote processor 316 from the informationmanager when a management packet having the operation code for promoteprint is received by the information manager. The job ID of the printjob designated for priority print (this print job is called the promoteprint job) is stored in the data section of the management packet.

If there is a promote instruction in step 3001, it is determined whetheror not the job ID of the print job designated for priority print existsin the job table 313 in step 3002. If it does not exist, the processreturns to step 3001. If it does exist, in step 3003 the print jobdesignated for priority print is inserted after the print job indicatedby the pointer 801. In other words, it is inserted before the print jobsfor which the PDL data has not yet been read by the PDL translator 306.If the pointer 801 is not pointing at any print job, the job is insertedat the head of the job table 313.

FIG. 28 is an explanatory diagram showing two job tables for explainingthe promote process. Suspend flags are omitted from these tables. ThePDL translator 306 obtains the job ID indicated by the pointer in thejob table, reads the PDL data linked to this job ID from the job spooler304, and translates the data.

In the job table 28-1, the PDL translator 306 is translating the printjob with job ID 2. When processing of the print job with job ID 2 iscompleted, the PDL data of the print job with job ID 3 will betranslated if the status of the table remains the same. However, if theprint job with job ID 5 is designated for promote print, there will be asubstitution of job IDs and the table will read as in job table 28-2.Then, when processing of the print job with job ID 1 is completed, nextthe PDL data of the print job with job ID 5 will be translated and as aresult the print job with job ID 5 will be printed before the print jobswith job IDs 3 and 4.

In this way, because promote print does not stop the analysis of the PDLdata or the print process of any print jobs, a decrease in the totalthroughput of the printing apparatus can be prevented. However, becausethe print job is processed after the print job currently beingtranslated, interrupt print is best suited when printing must be doneimmediately.

Interrupt Notification

FIG. 39 is a diagram showing one example of the system in which the hostcomputer and the printing apparatus are connected via a network or via alocal cable. The host computers 3901, 3902, and 3903 are the same as thehost computer 100 of FIG. 2. The printing apparatus 3904 is the same asthe printing apparatus 300 of FIG. 3.

The host computer 3901 and the printing apparatus 3904 and the hostcomputer 3902 and the printing apparatus 3904 are connected via anetwork. Thus, the host computer 3901 and the host computer 3902 eachhave network addresses. The host computer 3903 and the host computer3904 are connected via a local cable such as a centronics interface oran SCSI interface.

FIG. 35 shows one example of a management table for managing the jobinformation and the status of each print job sent from multiple hostcomputers (host computers 3901, 3902, and 3903). This management tableis stored in memory such as RAM 3610 as one portion of the database 305.

In FIG. 35, column 3501 shows the recognition number (job ID) of theprint jobs. Column 3502 shows the status of each print job. Column 3503shows the address at which the intermediate data either being output orwaiting to be output is stored, generated from the PDL data of the printjob. Column 3504 shows the address at which the current analysisinformation is stored if an interrupt was performed. Column 3505 showsthe address at which the output information was stored if an interruptwas performed. Column 3506 shows the network address of the hostcomputer that sent the print job.

FIG. 36 shows one example of the intermediate data stored in the drawbuffer 307. In the draw buffer of this embodiment, the records are baseunits. In FIG. 36, 3601 is a range expressing the address of thefollowing record. 3602 shows that the record expresses a rule. 3603expresses the start coordinates of the rule and 3604 expresses the endcoordinates of the rule. 3605 expresses the thickness of the line. Therule is rendered according to this information.

3606 is a range expressing the address of the following record, withinthe range of the address shown in 3601. 3607-3611 are records expressingcharacters. 3608 expresses the font name and the font pattern isconfirmed by the font name. 3609 expresses the start coordinates. 3610expresses the number of characters stored successively. 3611 shows thecharacter code. The drawer 308 reads the pattern corresponding to thecharacter code and renders the characters in order from the startcoordinates.

3613-3616 express the records of a rectangle. In other words, therectangle is rendered based on the start coordinates (3614), the endcoordinates (3615), and the line thickness (3616).

The images on one page are rendered based on the collection of theserecords.

FIG. 37 shows one example of output information. In FIG. 37, 3701 showsthe ejection port during current ejection. 3702 shows the size of thepaper and direction during ejection. 3703 shows the number of pagesejected by the printing process of the print job.

FIG. 38 is a flowchart explaining the operations of the interruptprocessor when an interrupt notification is made. FIG. 38 is theflowchart of FIG. 9 with steps 3812-3814 added in order to performinterrupt notification. The interrupt processor 312 first determines instep 909 whether or not an interrupt instruction was made. If aninterrupt was instructed it saves the output information shown in FIG.37 in RAM in step 3812. Next, it searches for the interrupted job instep 3813. To be precise, it may search for the interrupted print job bychecking the status of each print job in the management table or it cansearch for the interrupted print job by checking the job table 313.

In the management table in FIG. 35, the print jobs with job IDs of 1, 2,and 3 are the interrupted print jobs. In the job table of FIG. 10, theprint jobs with job IDs of 1, 2, 3, and 4 are the interrupted printjobs.

In step 3814, it notifies the host computer that sent the interruptedprint jobs that an interrupt has occurred. In the management table ofFIG. 35, first the host computer that sent the print job with job ID 1is sent a notification via a local cable because it is directlyconnected via a local cable. The host computers that sent the print jobswith job IDs 2 and 3 are sent notifications based on their networkaddresses stored in column 3506 of the management table of FIG. 35because they are connected via a network.

In step 901, the processor instructs the PDL translator to suspend theprint job currently being processed. The PDL translator so instructedimmediately interrupts the translation it is currently performing.

Next, in step 902, the intermediate data is deleted if any intermediatedata exists in the draw buffer 307. Deletion of the intermediate data isnot merely the erasure of data but also includes actual invalidation ofthat intermediate data. In step 904, the printer engine is instructed tosuspend processing. However, if the printer engine is currently printingor ejecting, there is the possibility of a jam resulting from suspendingthe process. Therefore, if the printer engine is currently printing orejecting, these processes are not suspended.

Then, in step 911, the processor obtains the number of pages of theinterrupted print job for which ejection has been completed from theprinter engine 309 and stores this as job information for the print jobin the database 305. This step can be performed by the printer engine309 itself. If so, the printer engine 309 sends the number of pages ofthe interrupted print job for which ejection has been completed to theinformation manager 310 when it receives the suspend instruction fromthe interrupt processor 312 and the information manager 310 stores thisinformation as job information of the print job in the database 305.

In step 905, the job ID of the instructed print job is added to the headof the job table 313. At this time the pointer 801 moves to point at thejob ID of this print job. This job ID was sent along with the interruptinstruction from the job pre-processor 303. In this way, the print jobthat will be processed next in the job table 313 is the instructed printjob.

In step 906, a resume instruction is sent to the PDL translator 306. ThePDL translator 306 then looks at the pointer 810 of the job table 313and translates taking the PDL data of the print job (in this case theinstructed print job) indicated by the pointer 810 of the job table 313from the job spooler 304. In step 907, a resume instruction is sent tothe drawer 308 and finally in step 908 a resume instruction is sent tothe printer engine.

FIG. 40 is a flowchart explaining the operations of the interruptprocessor when an interrupt is instructed. FIG. 40 is the flowchart ofFIG. 11 with steps 3812-3814 added for the interrupt notificationexplained in FIG. 38.

FIG. 41 is a flowchart explaining the operations of the promoteprocessor when a promote notification is made. FIG. 41 is the flowchartof FIG. 27 with steps 4113 and 4114 added for promote notification.

The promote processor 316 first determines in step 3001 whether or notthere is a promote instruction. If there is no promote instruction, itreturns to step 3001 and waits for a promote instruction. Promoteinstructions are sent from the information manager 310 to the promoteprocessor 316 when a management packet having the operation code forpromote instruction is received by the information manager 310. The jobID of the print job designated for priority print (this print job iscalled a promote print job) is stored in the data section of themanagement packet.

If there is a promote instruction in step 3001, the processor confirmswhether or not the job ID of the print job designated for priority printexists in the job table 313. If it does not exist, it returns to step3001.

If the job ID does exist, the processor searches for interrupted printjobs in step 4113. To be precise, it may search for interrupted printjobs by checking the status of each print job in the management table orit may search for interrupted print jobs by checking the job table 313.In the job table of FIG. 28, the print jobs with job IDs of 3 and 4 areprint jobs interrupted by the promote process.

In step 4114, notification that a promote has occurred is sent to thehost computers that sent the print jobs interrupted by the promoteprocess. At this time, the notifications are sent to the networkaddresses stored in column 3506 of the management table.

In step 3003, the promote print job is inserted after the print jobindicated by the pointer 801. In other words, the promote print job isinserted at the head of the print jobs for which the PDL data has notyet been read by the PDL translator 306. If the pointer 801 is notpointing to any print jobs, the promote print job is inserted at thehead of the job table 313.

Next the control structure of the printing apparatus 300 is explained.FIG. 33 is a block diagram showing the control structure of the printingapparatus 300. In FIG. 33, the printing apparatus 3601 comprises aprinter controller (controller) 2603, a printer engine 3604, a panel3605, and a disk 3606.

The controller 3603 comprises a CPU 3607, a PROM 3608, an optionalmemory, a RAM 3610, a host I/F 3611, an engine I/F 3612, a panel I/F3613, a disk I/F 3614, and an NVRAM 3615.

The CPU 3607 controls each section based on the control programs shownin the flowcharts of FIGS. 5, 6, 7, 9, 11, 15, 18, 20, 24, and 30 andeach of the other control programs stored in the PROM 3608. The host I/F3611 is an interface for transmission of such things as the print jobswith the host computer 3602. The engine I/F 3612 is an interface fortransmitting with the printer engine 3604 that actually prints.

The panel I/F 3613 is an interface for transmitting instructions andstatus to the panel 3605 in order to display the status of the laserbeam printer 3601 to the user and for the user to instruct changes inthe printing environment of the laser beam printer 3601.

The optional memory 3609 is a memory which can be attached or detachedfor storing such things as fonts, such as a card, optional ROM, or FLASHmemory. Ranges such as the draw buffer 3610 a for storing the imageobject or the input buffer 3610 b for temporarily storing the PDL datainput from the host computer 3602 are stored in the RAM 3610. The RAM3610 is also used as a work area of the CPU 3607. The NVRAM 3615 is usedfor storing the setting values of each setting item relating to thedevice and the print jobs.

The panel is equipped with such things as a liquid crystal panel displayfor displaying information such as the status of the laser beam printer3601 in characters, all types of operation buttons for the user tovariously manipulate the laser beam printer 3601, and LEDs for informingthe user of such things as the location of the sheet feed oronline/offline.

The printer engine 3604 actually prints the print object on a recordingmedium. The disk 3606 is an external memory device for various datarecording and can be a hard disk device, a photomagnetic disk device, ora floppy disk device, etc. The laser beam printer 3601 receives thesupply of electricity from a power portion that is not shown in theFigure.

Each of the structures in the functional construction of the printingsystem of FIG. 3, such as the logic channel controller 302, the jobpreprocessor 303, the PDL translator 306, the drawer 308, theinformation manager 310, the interrupt processor 312, the suspend/resumeprocessor 315, and the promote processor 316, are realized when the CPU3607 in the printing apparatus 3601 of FIG. 36 executes the controlprograms stored in the PROM 3608. The job spooler 304, the database 305,the job table 313, and the draw buffer 307 of FIG. 3 are stored on theRAM 3610 or the disk device 3606 of the printing apparatus 3601 of FIG.36.

Next the control structure of the host computer 200 is explained. FIG.34 is a block diagram showing the control structure of the host computer200. In FIG. 34, the CPU 3701 controls inclusively each device connectedto the system bus 3704 and executes the control programs stored onmemory mediums such as the ROM 3702, the hard disk (HD) 3711, or thefloppy disk (FD) 3712.

3703 is a RAM that functions as a work area and the main memory of theCPU 3701. 3705 is a keyboard controller (KBC) that controls theinstructions input by the user from the keyboard (KB) or a pointingdevice (not illustrated).

3706 is a CRT controller (CRTC) that controls the display of the CRTdisplay (CRT) 3710. 3707 is a disk controller (DKC) that controls accessto the floppy disk (FD) 3712 and the hard disk (HD) 3711 that stores theboot program, various applications, the edit file, the user file, andthe control programs. 3708 is an interface card (IC) for datatransmission to and from the printing apparatus 300 via a transmissionmedium.

Each structure in the functional construction of the printing system ofFIG. 2 such as the logic channel controller 206, the job packetgenerator 207, the printer driver 202, the application 201, and theutility 205 is realized when the CPU 3701 in the host computer 200 ofFIG. 37 executes the control programs stored in the ROM 3702 and the HD3711. The output buffer 203 of FIG. 2 is stored on the RAM 3703 or theHD 3711 of the host computer 200 of FIG. 37.

FIG. 29 is a cross-section showing the inner construction of a laserbeam printer (LBP) that is one example of the printing apparatus of FIG.3 or FIG. 36. This LBP can print recorded sheets by inputting characterpattern data. In FIG. 29, 8012 is the LBP main body, which forms animage on recording sheets which are a recording medium based on thesupplied character pattern. 8000 is an operation panel equipped withswitches or LED displays for operation and 8001 is a printer controlunit for analysis of such things as control of the entire LBP 8012 andcharacter pattern information. This printer control unit 8001 mainlyoutputs the character pattern information to the laser driver 8002 byconverting it to a video signal. The laser driver 8002 is a circuit fordriving a semiconductor laser 8003 and switches a laser beam 8004 thatirradiates from the semiconductor laser 8003 in response to the inputvideo signal on or off. The laser beam 8004 scans an electrostatic drum8006 by swinging a rotary polygon mirror 8005 left and right. In thisway an electrostatic latent image of the character pattern is formed onthe electrostatic drum 8006. This latent image is transferred to therecording sheet after it is developed by a developing unit 8007 on theperiphery of the electrostatic drum 8006. A cut sheet is used for thisrecording sheet and the out sheet recording sheet is contained in amultiple sheet cassette 8008 corresponding to multiple types of sheetattached to the LBP 8012, is taken into the apparatus between a sheetfeed roller 8009 and conveying rollers 8010 and 8011, and supplied tothe electrostatic drum 8006.

FIG. 29 is a schematic diagram of an ink jet recording apparatus IJRAthat is another example of the printing apparatus in FIG. 3 or FIG. 36.In the same figure, the carriage HC, engaged in a screw groove 9003 of alead screw 9004, that rotates via drive power transfer gears 9010 and9008 synchronized to forward and reverse rotation of a driving motor9011 has a pin (not shown) and moves in both directions shown by thearrows a and b. An ink jet cartridge IJC is loaded on the carriage HC.9001 is the sheet suppressing plate that presses the paper against theplate 9000 across the entire span of the movement of the carriage. 9006and 9007 are photo couplers, which serve as a means of home positiondetection for performing such things as switching the rotation directionof the motor 9011 by confirming the existence of the carriage lever 9005in this range. 9013 is a supporting member for the cap 9019 that capsthe front surface of the recording head, and 9012 is a suction means forsuction within this cap that performs suction recovery of the recordinghead via the inner opening 9020 of the cap. 9014 is a cleaning blade.9016 is a member that can move this blade either forward or backward.Both are supported by a main body supporting plate 9015. The blade neednot be in this form, conventional cleaning blades may also be suitablefor this example. 9018 is a lever for initiating suction for suctionrecovery that moves along with the movement of a cam 9017 engaged withthe carriage. The driving power from the driving motor is controlledwith a known transfer means such as a clutch switch. Capping, cleaningand suction recovery are structured such that the designated process canbe performed in the corresponding positions when the carriage comeswithin the range of the home position side by the function of the leadscrew 9004. However, if the operations are performed with known timingthey can be applied to the present example.

The present invention can be applied to a system constructed from acopier, a printer, and a scanner existing as single units, or it can beapplied to an apparatus comprising a single device (for example, acopier or a facsimile).

The purpose of the present invention is to provide a recording medium(FIG. 31) having a program code for software (a control program) forrealizing the functions of the embodiment described above to a systemsuch as is shown in FIGS. 36 and 37 and to accomplish this by readingand executing the program code stored on the memory medium with theapparatus of this system (CPU 3607, CPU3701). The method for supplyingthe PC main body 3401 with programs and data by recording on a floppydisk FD 3402 as shown in FIG. 32 is also a general method for supplying.

In this case, the program code itself read from the memory mediumrealizes a function of the embodiment above and the memory mediumrecording the program code comprises the present invention.

Aside from floppy disks or hard disks, an optical disk, a photomagneticdisk, a CD-ROM, a CD-R, magnetic tape, a non-volatile memory card, or aROM can also be used as the memory medium for supplying the programcode.

It is also a general method for supplying the PC main body 3401 from aserver apparatus via a LAN or public phone line 3405 as shown in FIG. 32as the method for supplying the program and data. In this case, theprogram code itself that is read from the memory medium realizes thefunction of the above embodiment and the server apparatus sending theprogram code becomes the present invention.

Because a computer executes the read program code, not only is thefunction of the above embodiment realized, but based on the instructionsof the programs code one or all parts of the actual processes areperformed by an OS (operations system) operating on the computer and itgoes without saying the function of the above embodiment is realizedthrough this process. Further, after the program code read from thememory medium is written on the memory of a function expansion unitconnected to a function expansion board inserted in the computer or tothe computer, one or all parts of the actual processes are performed bythe CPU of this function expansion board or function expansion unitbased on the instructions of the program code and it goes without sayingthat the functions of the above embodiment are also realized throughthis process.

Embodiment 2

FIG. 42 is a cross-section of the internal structure of a laser beamprinter (LBP) to which the present invention is applied. This LBPperforms registration of character pattern and form data sent from adata source that is not illustrated.

In FIG. 42, 4200 is the LBP main body for inputting and storingcharacter information (character codes), form information, or macrocommands supplied from the host computers (4301, 4311, and 4312 in FIG.43) connected externally, produces such things as character patterns andform patterns corresponding to this information, and forms an image onprinting media. 1112 is an operations panel equipped with switches andLED displays for operation. 4201 is a printer control unit for analysisof such things as the character information supplied from the above hostcomputers and control of the entire LBP 4200. This printer control unit4201 outputs mainly character information to a laser driver 4202 byconverting it to a video signal of a character pattern.

The laser driver 4202 is a circuit for driving a semiconductor laser4203 that switches a laser beam 4204 that irradiates from asemiconductor laser 4203 in response to the input video signal on oroff. The laser beam 4204 swings left and right on a rotary polygonmirror 4205 and scans an electrostatic drum 4206. In this way, anelectrostatic latent image of the character pattern is formed on theelectrostatic drum 4206. This latent image is transferred to theprinting media after it is developed by a developing unit 4207 on theperiphery of the electrostatic drum 4206. A cut sheet is used for thisprinting media. The cut sheet is collected within a sheet cassette 4208attached to the LBP 4200, taken inside the LBP apparatus by a sheet feedroller 4209 and conveying rollers 4210 and 4211, and supplied to theelectrostatic drum 4206.

4212 is an allocation unit at the ejection point of the cut sheets. Withthis unit the user can select whether to eject to a face up tray 4213 ora face down tray 4214. FIG. 43 shows a block structure of the LBP shownin FIG. 42 and its relationship to a data generation source. Each blockfrom 4302-4315 within this Figure is included in the printer controlunit 4201 shown in FIG. 42 and the structure of the printer 4310 is asexplained in FIG. 42.

4301 is a host computer that becomes the first data source. 4302 is aninput buffer for the data source (host computer) 4301, 4304 is an outputbuffer for responding to the data source (host computer) 4301, 4304 is aCPU for control of the LBP, 4305 is a ROM storing programs (FIGS. 8 and10) and font patterns, and 4306 is a RAM storing work information,analysis information, and output information. 4307 is a page bufferstoring analyzed image information and can store multiple pageinformation. 4308 is a panel interface for control connected to theoperation panel. 4309 is an engine interface for control with theprinter. 4310 is a printer engine for actual printing.

4311 and 4312 are host computers connected to a network. 4313 is anetwork I/F (interface) for controlling the connections to the network.4314 and 4315 are output buffers and input buffers for networkconnection corresponding to the input buffer 4302 and the output buffer4303.

FIG. 44 shows one example of a management table stored on the RAM 4306for management of the status of each print job sent from the hostcomputers 4301, 4311, and 4312, which are information sources, and therelated information. In this Figure, column 4401 is the job recognitionnumber (ID), column 4402 shows the status of each job received, andcolumn 4403 shows the address within the page buffer 4307 of theanalyzed page being output or waiting to be output. Column 4404 showsthe address where the current analysis information is stored if aninterrupt is performed. Column 4405 shows the address where outputinformation is stored when an interrupt is performed. The networkaddresses of the host computers related to the jobs received through thenetwork (see FIG. 43) are stored in column 4406.

FIG. 45 shows one example of the interrupt command instructed from thehost computers 4301, 4311, and 4312 (see FIG. 43) that are data sources.In this figure, 4501 is an ESC code indicating that it is a controlcommand. 4502 is the character string PRO indicating that the command isan interrupt command. Information that indicates what status of job (see4402 of FIG. 44) to interrupt is stored in 4503.

FIG. 46 shows one example of a page buffer after data analysis stored inthe page buffer 4307 (see FIG. 43). In the present embodiment, the pagebuffer processes a record as a base unit. In this Figure, 4601 is arange indicating the address of the following record. 4602 indicatesthat the record processes a rule. 4603 is the start coordinates of therule, 4604 is the end coordinates of the rule, and 4605 is the thicknessof the line. A line is drawn using this information.

4066 is linked through 4601 above and stores the address to be linkednext. This record is a record of characters (4607) and confirms the fontpattern by the font name (4608). The start coordinates are confirmed bythe start point (4609) and a code of the number of characters (4610) islinked to it and stored, so that the images are formed in order from thestart coordinates by reading the pattern in response to the charactercode (4611).

4612 to 4616 display a record of a rectangle. In other words, an imageis formed with the start coordinates (4614), end coordinates (4615), andthe line thickness (4616).

With this group of records the images of one page are formed.

FIG. 47 shows one example of analysis information. In this Figure,coordinates values describing the current image are stored in 4701. Therule thickness and type of rule is stored in 4702. The currentlyselected font name, character pitch, and calligraphy style are stored in4703. the paper size, sending direction, percent of enlargement, andtype of paper are stored in 4704. By storing this analysis in formationin RAM it is possible to resume an interrupted job (see steps 810 and816 of FIG. 8).

FIG. 48 shows one example of output information. In this Figure, theejection destination of paper currently being ejected is stored in 4801and the paper size and direction of the paper being ejected is stored in4802. The number of pages for which output has been completed of thecurrent job is stored in 4803.

FIGS. 49A and 49B are flowcharts showing the control procedure that theCPU 4304 should execute according to the control program stored inadvance in the ROM 4305. Following, the operations of the presentembodiment are explained based on each step in FIGS. 49A and 49B.

First, the main program starts when power is supplied (step S4901). Instep S4902, the program checks whether or not data has reached the port(input buffer) from the host computer. If there is not data, the programrepeats the loop to step S4902. If there is data, it is registered inthe management table (see FIG. 44) (step S4902A). In other words, thejob ID is registered in column 4401.

Thereafter the program moves to step S4903 and confirms whether or notthe received data is a control command. If it is not a control command,it moves to step S4904, analyzes the input data, and converts it to aninternal code. The contents of this internal code are as mentionedearlier in FIG. 5. Then in step S4905, the internal code is written ontothe page buffer 4307 (see FIG. 43). Simultaneously, the address isregistered in column 4403 “page buffer” of the management table. Here,the page buffer for multiple jobs is produced and column 4402 “status”of the management table is set to “waiting for output” if the job iswaiting for output.

In step S4906, the program confirms whether or not production of thepage buffer is complete and repeats steps S4903 and following if it isnot complete.

If the page buffer is complete, it moves to step S4907 and outputs tothe printer (printer engine) 4310 via the printer I/F 4409 (see FIG.43). At this time the “status” column 4402 of the management tablechanges to “outputting” (see FIG. 44).

If it is determined in step S4903 that it is a control command, in stepS4908 it is confirmed whether or not it is an interrupt commandcorresponding to the interrupt command 402 (PRO: see FIG. 4). If it isdetermined in step S4908 that it is not an interrupt command, it movesto step S4909 and analyzes the control command, and if necessary, writesonto the page buffer and returns to data analysis (step S4904).

If an interrupt command is confirmed in step S4908, and the print jobcurrently being analyzed has been interrupted, step S4910 is performed.In other words, in step S4910 the analysis information of FIG. 6 and theoutput information of FIG. 7 is saved in RAM.

In the next step, S4911, the program searches for interrupted jobs fromcolumns 4401 and 4402 of the management table (see FIG. 44). In thepresent example, three jobs exist and each job has been interrupted.

In step S4912, the program notifies the host computers of theinterrupted jobs that interruption has occurred. As job ID 1 was inputdirectly from the host computer 4301 (see line 4407) when one looks atthe example of FIG. 44, notification is made via the output buffer 4304(see FIG. 43). On the other hand, as it is clear from column 4406 thatthe job IDs 2 and 3 were issued via the network (in other words the jobsshown in lines 4408 and 4409), in this case notification that aninterruption occurred is made through the network I/F 4313 (see FIG. 43)based on the network addresses (column 4406) of the host computers thatsent each job.

The above network addresses are sent as one part of the control commandwhen the jobs are sent. Therefore, they are registered in column 4406 ofthe management table in the command analysis process of step S4909.

In step S4913, reception of the data of the instructed job becomespossible and begins. Next, in step S4914, it is confirmed whether or notreception of the instructed data is complete, and if it is not completethe program returns to step S4913 and repeats reception.

When the instructed data is all received, the program moves to stepS4916 and analyzes the data and then begins output to the printer 4310(printer engine).

When output of the instructed data is finished, in step S4916 theanalysis information and output information saved in step S4910 isreturned. In this way, analysis of the job 3 being analyzed (see line4409 of FIG. 44) continues to be possible.

In step S4917, the existence of data is confirmed. If it is determinedthat there is data, it returns to step S4903 and continues the process.If it is determined that there is no data, it outputs to the page bufferstored as currently analyzed and waiting for output and finishes theprocess.

Other Embodiments

In the explanations up to here, data interruption was performed afterthe issuance of an interrupt command (see FIG. 45), but if multiple jobsare already stored, it is also possible to perform print interruptwithin the printing control apparatus. FIG. 50 shows one example of aninterrupt command in that case.

In FIG. 50, 5001 is an ESC code indicating that it is a control command.5002 is a character string showing that the command is an interruptcommand. 5003 shows the job ID of the instructed job. 5004 shows the IDof the interrupted job.

It is further possible to eject printed sheets from instructed jobs froma different ejection port than usual. FIG. 51 is a flowchart showingthis ejection process. The processing procedure shown in this Figure iscontrolled by the CPU 4304 according to the program stored in ROM 4305(see FIG. 43).

The control in FIG. 51 is premised on recognition of an interruptcommand in step S4908 of FIG. 49A. First, in step S5102, it checks thestatus of the interrupted print job. If the status of the interruptedprint job is “outputting,” for example job ID 1 shown in FIG. 44, outputinformation is saved in step S5103.

In step S5102, if it is determined that it is not outputting, forexample it is waiting to be output as is job ID 2 shown in FIG. 44, itraises the priority of the instructed job over the interrupted job instep S5104.

Next, in step S5105, output is performed by changing the ejection portcurrently being used as the output destination of the instructed job.When ejection is completed, it returns to step S5106, returns the savedoutput information, and also returns the ejection port to the originallocation.

As described above, according to the present invention, when a usersends print instructions designating an interrupt from a host computer,even if print processing of another job is already being performed, itis possible for the printing apparatus to suspend the printing processof the other print job and immediately print process the instructedprint job. As a result it is possible to print process an urgent jobimmediately.

Further, after print processing of the instructed print job iscompleted, because the print process of the interrupted job isautomatically returned to, the owner of the interrupted print job doesnot need to resent the print job.

Further, the user can instruct an interrupt from the utility for anormal print job already sent to the printing apparatus, and it ispossible to achieve the same effect even if the necessity for interruptprint of this print job arises after it has been sent.

If the printing apparatus has multiple ejection bins, by changing theejection port of the instructed print job to a different ejection portfrom that of the interrupted print job, it is possible to prevent theprinted material of the instructed print job from mixing with theprinted material of the interrupted print job.

Further, it is possible to process a print job by priority withoutcausing the total throughput of the printing apparatus to decrease bypriority print which raises the priority of the printing order of aprint job without suspending a print job that is already being printprocessed.

If the user executes a print process from the host computer, executionof the print can be stopped without print processing in the printapparatus by instructing a suspend of the print job, and it is thenpossible to actually perform print processing by instructing a resume.

Further, by temporarily suspending print processes by instructing asuspension of a normal print job already sent to the printing apparatus,for example in order to avoid monopolizing the printing apparatus with aprint job that will take much print processing time, the print jobsbehind can be printed first when the need to suspend print arises afterthe print job has been sent.

Further, during power-off of the printing apparatus it is possible toavoid the power of the printing apparatus being shut off when suspendedprint jobs exist by displaying the fact that suspend print jobs existinside the printing apparatus on the operation panel.

Further, if an interrupt job is generated, a notification can be made tothe sending source of the interrupted print job (such as a hostcomputer) that an interrupt occurred.

Further, notification of interruption can be made to the host computereven when the host computer is connected to the printer via a network.

Further, the ejection destination of the instructed job and the ejectiondestination that is normally used can be made to differ when a printerhaving multiple ejection means is used.

1. A print control apparatus for receiving a print job including printdata from an external apparatus and controlling an image forming sectionto form an image based on image data, said apparatus comprising: storingmeans for storing print data; generation means for generating image databy analyzing the print data; image formation control means for causingthe image forming section to form the image based on the image datagenerated by said generation means; and interrupt control means for, inresponse to an interrupt instruction identifying a print job,interrupting processing of a print job not identified by the interruptinstruction and controlling said generation means to analyze print dataof the print job identified in the interrupt instruction, wherein saidstoring means stores print data of the interrupted print job, includinga print data portion that has already been analyzed by said generationmeans, until formation of an image based on the image data generatedfrom the print data of the identified print job by the image formingsection is completed, and wherein said generation means analyzes theprint data of the interrupted print job, including the print dataportion that has already been analyzed by said generation means, storedin said storing means after the analysis of the print data of theidentified print job is completed.
 2. The print control apparatus ofclaim 1, wherein said interrupt control means interrupts processing ofthe print job not identified by the interrupt instruction by causingsaid generation means to suspend analysis of the print data of the printjob not identified by the interrupt instruction.
 3. The print controlapparatus of claim 1, wherein said interrupt control means interruptsprocessing of the print job not identified by the interrupt instructionby causing said image formation control means to suspend image formationin the image forming section based on the image data of the print jobnot identified by the interrupt instruction.
 4. The print controlapparatus of claim 1, wherein said interrupt control means interruptsprocessing of the print job not identified by the interrupt instructionby causing the image forming section to suspend image formation based onthe print data of the print job not identified by the interruptinstruction.
 5. The print control apparatus of claim 1, wherein saidinterrupt control means interrupts processing of the print job notidentified by the interrupt instruction by deleting the image datagenerated by said generation means from the print data of the print jobnot identified by the interrupt instruction.
 6. The print controlapparatus of claim 1, wherein said interrupt control means interruptsprocessing of the print job not identified by the interrupt instructionby invalidating the image data generated by said generation means fromthe print data of the print job not identified by the interruptinstruction.
 7. The print control apparatus of claim 1, wherein saidgeneration means analyzes all the print data of the interrupted printjob stored in said storing means after analysis of the print data of theidentified print job is completed.
 8. The print control apparatus ofclaim 1, wherein said generation means skips generation of image data,based on a number of pages for which ejection from said print controlapparatus is completed.
 9. The print control apparatus of claim 1,wherein the interrupt instruction is included in the identified printjob.
 10. The print control apparatus of claim 1, further comprisingpriority control means for controlling priority print processing suchthat the print data of a print job instructed for priority print isanalyzed after the analysis of all the print data of a certain print jobis completed by said generation means in response to a priorityinstruction from the external apparatus.
 11. The print control apparatusof claim 10, wherein the priority instruction is included in theinstructed print job.
 12. The print control apparatus of claim 2,further comprising determination means for determining whether or not aninterrupt instruction is permitted, wherein said interrupt control meansdoes not interrupt the processing of the print job not identified by theinterrupt instruction if it is determined that the instruction is notpermitted by said determination means.
 13. The print control apparatusof claim 12, further comprising setting means for setting whether or notthe interrupt instruction can be used, wherein said determination meansdetermines that the interrupt instruction is permitted if it is set foruse by said setting means.
 14. A print control apparatus for receiving aprint job including print data from an external apparatus and forming animage in an image forming section based on image data, said apparatuscomprising: storing means for storing print data; generation means forgenerating image data by analyzing the print data; image formationcontrol means for causing the image forming section to form an imagebased on the image data generated by said generation means; suspendcontrol means for controlling such that the print data stored by saidstoring means, which is print data of a print job instructed forsuspension, is not analyzed by said generation means in response to asuspend instruction for the print job from the external apparatus;determination means for determining whether or not suspended print jobsexist at power-off; and power supply control means for suspendingpower-off for a designated amount of time if it is determined that aprint job exists by said determination means, wherein said storing meansstores the print data of the print job instructed for suspension untilformation of an image based on image data generated from print data ofthe print job from the external apparatus by the image forming sectionis completed.
 15. The print control apparatus of claim 14, wherein saidpower supply control means does not perform power-off if there is nopower-off instruction during the designated amount of time and doesperform power-off if there is a power-off instruction during thedesignated amount of time.
 16. A print control apparatus for receiving aprint job including print data from an external apparatus andcontrolling an image forming section to form an image based on imagedata, said apparatus comprising: generation means for generating imagedata by analyzing the print data; and image formation control means forcausing the image forming section to form an image based on the imagedata generated by said generation means, wherein said apparatus may beoperated in a first mode in which, in response to a first modeinstruction identifying a print job, received from the externalapparatus, to be processed in the first mode, the first mode instructionbeing included in the identified print job, said generation means iscaused to suspend analysis of print data of a print job not identifiedin the first mode instruction and analyze print data of the print jobidentified in the first mode instruction, and in a second mode in which,in response to a second mode instruction identifying a print job,received from the external apparatus, to be processed in the secondmode, the second mode instruction being included in the identified printjob, said generation means is caused to analyze print data of the printjob identified in the second mode instruction after completing analysisof print data of a first print job not identified in the second modeinstruction and before starting analysis of print data of a second printjob not identified in the second mode instruction, the first and secondprint jobs being received before the identified print job.
 17. The printcontrol apparatus of claim 16, wherein, in the first mode, said imageformation control means is caused to suspend image formation in theimage forming section based on the image data relating to the print jobnot identified in the first mode instruction.
 18. The print controlapparatus of claim 16, wherein, in the first mode, image formation issuspended in the image forming section based on the image data relatingto the print job not identified in the first mode instruction.
 19. Theprint control apparatus of claim 16, wherein, in the first mode, imagedata generated by said generation means is deleted in response to thefirst mode instruction.
 20. The print control apparatus of claim 16,wherein, in the first mode, image data generated by said generationmeans is invalidated in response to the first mode instruction.
 21. Aprint control method for controlling a print control apparatus forreceiving print jobs including print data from an external apparatus andcontrolling an image forming section to form an image based on imagedata, said method comprising: a storing step of storing print data instoring means; a generation step of generating image data by analyzingthe print data; an image formation control step of causing the imageforming section to form the image based on the image data generated insaid generation step; and an interrupt control step of, in response toan interrupt instruction identifying a print job, interruptingprocessing of a print job not identified by the interrupt instructionand controlling said generation step to analyze print data of the printjob identified in the interrupt instruction, wherein said storing stepstores print data of the interrupted print job in the storing means,including a print data portion that has already been analyzed in saidgeneration step, until formation of an image based on the image datagenerated from the print data of the identified print job by the imageforming section is completed, and wherein said generation step analyzesprint data of the interrupted print job, including the print dataportion that has already been analyzed in said generation step, storedin said storing step after analysis of the print data of the identifiedprint job is completed.
 22. The print control method of claim 21,wherein said interrupt control step interrupts processing of the printjob not identified by the interrupt instruction by causing saidgeneration step to suspend analysis of print data of the print job notidentified by the interrupt instruction.
 23. The print control method ofclaim 21, wherein said interrupt control step interrupts processing ofthe print job not identified by the interrupt instruction by causingsaid image formation control step to suspend image formation in theimage forming section based on image data of the print job notidentified by the interrupt instruction.
 24. The print control method ofclaim 21, wherein said interrupt control step interrupts processing ofthe print job not identified by the interrupt instruction by causing theimage forming section to suspend image formation based on print data ofthe print job not identified by the interrupt instruction.
 25. The printcontrol method of claim 21, wherein said interrupt control stepinterrupts processing of the print job not identified by the interruptinstruction by deleting image data generated in said generation stepfrom print data of the print job not identified by the interruptinstruction.
 26. The print control method of claim 21, wherein saidinterrupt control step interrupts processing of the print job notidentified by the interrupt instruction by invalidating image datagenerated in said generation step from print data of the print job notidentified by the interrupt instruction.
 27. The print control method ofclaim 21, wherein said generation step analyzes all the print data ofthe interrupted print job stored in the storing means after analysis ofthe print data of the identified print job is completed.
 28. The printcontrol method of claim 21, wherein said generation step skipsgeneration of image data, based on a number of pages for which ejectionfrom the print control apparatus is completed.
 29. The print controlmethod of claim 21, wherein the interrupt instruction is included in theidentified print job.
 30. The print control method of claim 21, furthercomprising a priority control step of controlling priority printprocessing such that the print data of a print job instructed forpriority print is analyzed after analysis of all the print data of acertain print job is completed in said generation step in response to apriority instruction from the external apparatus.
 31. The print controlmethod of claim 30, wherein the priority instruction is included in theinstructed print job.
 32. The print control method of claim 22, furthercomprising a determination step of determining whether or not aninterrupt instruction is permitted, wherein said interrupt control stepdoes not interrupt processing of the print job not identified by theinterrupt instruction if it is determined in said determination stepthat the instruction is not permitted.
 33. The print control method ofclaim 32, further comprising a setting step of setting whether or notthe interrupt instruction can be used, wherein said determination stepdetermines that the interrupt instruction is permitted if it is set foruse in said setting step.
 34. A print control method for a print controlapparatus receiving a print job including print data from an externalapparatus and causing image formation in an image forming section of theprint control apparatus based on image data, said method comprising: astoring step of storing print data in storing means; a generation stepof generating image data by analyzing the print data; an image formationcontrol step of causing image formation in the image forming sectionbased on the image data generated in said generation step; a suspendcontrol step of controlling such that the print data stored in thestoring means, which is print data of a print job instructed forsuspension, is not analyzed in said generation step in response to asuspend instruction for the print job from the external apparatus; adetermination step of determining whether or not suspended print jobsexist at power-off; and a power supply control step of suspendingpower-off for a designated amount of time if it is determined in saiddetermination step that a print job exists, wherein said storing stepstores the print data of the print job instructed for suspension untilformation of an image based on image data generated from print data ofthe print job from the external apparatus by the image forming sectionis completed.
 35. The print control method of claim 34, wherein saidpower supply control step does not perform power-off if there is nopower-off instruction during the designated amount of time and doesperform power-off if there is a power-off instruction during thedesignated amount of time.
 36. A print control method for controlling aprint control apparatus for receiving a print job including print datafrom an external apparatus and controlling an image forming section toform an image based on image data, said method comprising: a generationstep of generating image data by analyzing the print data; and an imageformation control step of causing the image forming section to form animage based on the image data generated in said generation step, whereinsaid method may be executed in a first mode in which, in response to afirst mode instruction identifying a print job, received from theexternal apparatus, to be processed in the first mode, the first modeinstruction being included in the identified print job, said generationstep is caused to suspend analysis of print data of a print job notidentified in the first mode instruction and analyze print data of theprint job identified in the first mode instruction, and in a second modein which, in response to a second mode instruction identifying a printjob, received from the external apparatus, to be processed in the secondmode, the second mode instruction being included in the identified printjob, said generation step is caused to analyze print data of the printjob identified in the second mode instruction after completing analysisof print data of a first print job not identified in the second modeinstruction and before starting analysis of print data of a second printjob not identified in the second mode instruction, the first and secondprint jobs being received before the identified print job.
 37. The printcontrol method of claim 36, wherein, in the first mode, said imageformation control step is caused to suspend image formation in the imageforming section based on the image data relating to the print job notidentified in the first mode instruction.
 38. The print control methodof claim 36, wherein, in the first mode, image formation is suspended inthe image forming section based on the image data relating to the printjob not identified in the first mode instruction.
 39. The print controlmethod of claim 36, wherein, in the first mode, image data generated insaid generation step is deleted in response to the first modeinstruction.
 40. The print control method of claim 36, wherein, in thefirst mode, image data generated in said generation step is invalidatedin response to the first mode instruction.
 41. A computer-readablememory medium which stores a print control program executing a printcontrol method for controlling a print control apparatus for receiving aprint job including print data from an external apparatus andcontrolling an image forming section to form an image based on imagedata, said program comprising: code for a storing step of storing printdata in storing means; code for a generation step of generating imagedata by analyzing print data; code for an image formation control stepof causing the image forming section to form the image based on imagedata generated by said generation code; and code for an interruptcontrol step of, in response to an interrupt instruction identifying aprint job, interrupting processing of a print job not identified by theinterrupt instruction and controlling said generation code to analyzeprint data of the print job identified in the interrupt instruction,wherein said storing code stores print data of the interrupted print jobin the storing means, including a print data portion that has alreadybeen analyzed by said generation code, until formation of an image basedon the image data generated from the print data of the identified printjob by the image forming section is completed, and wherein saidgeneration code analyzes the print data of the interrupted print job,including the print data portion that has already been analyzed by saidgeneration code, stored by said storing code after analysis of printdata of the identified print job is completed.
 42. The computer-readablememory medium of claim 41, wherein said interrupt control codeinterrupts processing of the print job not identified by the interruptinstruction by causing said generation code to suspend analysis of printdata of the print job not identified by the interrupt instruction. 43.The computer-readable memory medium of claim 41, wherein said interruptcontrol code interrupts processing of the print job not identified bythe interrupt instruction by causing said image formation control codeto suspend image formation in the image forming section based on imagedata of the print job not identified by the interrupt instruction. 44.The computer-readable memory medium of claim 41, wherein said interruptcontrol code interrupts processing of the print job not identified bythe interrupt instruction by causing the image forming section tosuspend image formation based on print data of the print job notidentified by the interrupt instruction.
 45. The computer-readablememory medium of claim 41, wherein said interrupt control codeinterrupts processing of the print job not identified by the interruptinstruction by deleting image data generated by said generation codefrom print data of the print job not identified by the interruptinstruction.
 46. The computer-readable memory medium of claim 41,wherein said interrupt control code interrupts processing of the printjob not identified by the interrupt instruction by invalidating imagedata generated by said generation code from print data of the print jobnot identified by the interrupt instruction.
 47. The computer-readablememory medium of claim 41, wherein said generation code analyzes all theprint data of the interrupted print job stored in the storing meansafter analysis of the print data of the identified print job iscompleted.
 48. The computer-readable memory medium of claim 41, whereinsaid generation code skips generation of image data, based on a numberof pages for which ejection from the print control apparatus iscompleted.
 49. The computer-readable memory medium of claim 41, whereinthe interrupt instruction is included in the identified print job. 50.The computer-readable memory medium of claim 41, wherein the programfurther comprises code for a priority control step of controllingpriority print processing such that the print control program causes theprint data of a print job instructed for priority print to be analyzedafter analysis of all the print data of a certain print job is completedby said generation code in response to a priority instruction from theexternal apparatus.
 51. The computer-readable memory medium of claim 42,wherein the program further comprises code for a determination step ofdetermining whether or not an interrupt instruction is permitted,wherein said interrupt control code does not interrupt processing of theprint job not identified by the interrupt instruction if it isdetermined by said determination code that the instruction is notpermitted.
 52. The computer-readable memory medium of claim 51, whereinthe program further comprises code for a setting step of setting whetheror not the interrupt instruction can be used, wherein said determinationcode determines that the interrupt instruction is permitted if it is setfor use by said setting code.
 53. A computer-readable memory mediumwhich stores a print control program executing a print control methodfor controlling a print control apparatus for receiving a print jobincluding print data from an external apparatus and controlling an imageforming section to form an image based on image data, said programcomprising: code for a storing step of storing print data in storingmeans; code for a generation step of generating image data by analyzingthe print data; code for an image formation control step of causingimage formation in the image forming section based on the image datagenerated by said generation code; code for a suspend control step ofcontrolling such that the print data stored in the storing means, whichis print data of a print job instructed for suspension, is not analyzedby said generation code in response to a suspend instruction for theprint job from the external apparatus; code for a determination step ofdetermining whether or not suspended print jobs exist at power-off; andcode for a power supply control step of suspending power-off for adesignated amount of time if it is determined by said determination codethat a print job exists, wherein said storing code stores the print dataof the print job instructed for suspension in the storing means untilformation of an image based on image data generated from the print dataof the print job from the external apparatus by the image formingsection is completed.
 54. The computer-readable memory medium of claim53, wherein said power supply control code does not perform power-off ifthere is no power-off instruction during the designated amount of timeand does perform power-off if there is a power-off instruction duringthe designated amount of time.
 55. A computer-readable memory mediumwhich stores a print control program executing a print control methodfor controlling a print control apparatus for receiving a print jobincluding print data from an external apparatus and controlling an imageforming section to form an image based on image data, said programcomprising: code for a generation step of generating image data byanalyzing the print data; and code for an image formation control stepof causing the image forming section to form an image based on the imagedata generated by said generation code, wherein the program may beexecuted in: a first mode in which, in response to a first modeinstruction identifying a print job, received from the externalapparatus, to be processed in the first mode, the first mode instructionbeing included in the identified print job, said generation code iscaused to suspend analysis of print data of a print job not identifiedin the first mode instruction and analyze print data of the print jobidentified in the first mode instruction; and a second mode in which, inresponse to a second mode instruction identifying a print job, receivedfrom the external apparatus, to be processed in the second mode, thesecond mode instruction being included in the identified print job, saidgeneration code is caused to analyze print data of the print jobidentified in the second mode instruction after completing analysis ofprint data of a first print job not identified in the second modeinstruction and before starting analysis of print data of a second printjob not identified in the second mode instruction, the first and secondprint jobs being received before the identified print job.
 56. Thecomputer-readable memory medium of claim 55, wherein, in the first mode,said image formation control code is caused to suspend image formationin the image forming section based on the image data relating to theprint job not identified in the first mode instruction.
 57. Thecomputer-readable memory medium of claim 55, wherein, in the first mode,image formation is suspended in the image forming section based on theimage data relating to the print job not identified in the first modeinstruction.
 58. The computer-readable memory medium of claim 55,wherein, in the first mode, image data generated by said generation codeis deleted in response to the first mode instruction.
 59. Thecomputer-readable memory medium of claim 55, wherein, in the first mode,image data generated by said generation code is invalidated in responseto the first mode instruction.
 60. A print control program executing aprint control method for controlling a print control apparatus forreceiving print jobs including print data from an external apparatus andan image forming section of the print apparatus to form an image basedon image data, said program comprising: code for a storing step ofstoring print data in storing means; code for a generation step ofgenerating image data by analyzing print data; code for an imageformation control step of causing the image forming section to form theimage based on the image data generated by said generation code; codefor an interrupt step of, in response to an interrupt instructionidentifying a print job, interrupting processing of a print job notidentified by the interrupt instruction and controlling said generationcode to analyze print data of the print job identified in the interruptinstruction, wherein said storing code stores print data of theinterrupted print job in the storing means, including a print dataportion that has already been analyzed by said generation code, untilformation of an image based on the image data generated from the printdata of the identified print job by the image forming section iscompleted, and wherein said generation code analyzes the print data ofthe interrupted print job, including the print data portion that hasalready been analyzed by said generation code, stored by said storingcode after analysis of the print data of the identified print job iscompleted.
 61. The print control program of claim 60, wherein saidinterrupt control code interrupts processing of the print job notidentified by the interrupt instruction by causing said generation codeto suspend analysis of print data of the print job not identified by theinterrupt instruction.
 62. The print control program of claim 60,wherein said interrupt control code interrupts processing of the printjob not identified by the interrupt instruction by causing said imageformation control code to suspend image formation in the image formingsection based on image data of the print job not identified by theinterrupt instruction.
 63. The print control program of claim 60,wherein said interrupt control code interrupts processing of the printjob not identified by the interrupt instruction by causing the imageforming section to suspend image formation based on print data of theprint job not identified by the interrupt instruction.
 64. The printcontrol program of claim 60, wherein said interrupt control codeinterrupts processing of the print job not identified by the interruptinstruction by deleting image data generated by said generation codefrom print data of the print job not identified by the interruptinstruction.
 65. The print control program of claim 60, wherein saidinterrupt control code interrupts processing of the print job notidentified by the interrupt instruction by invalidating image datagenerated by said generation code from print data of the print job notidentified by the interrupt instruction.
 66. The print control programof claim 60, wherein said generation code analyzes all the print data ofthe interrupted print job stored in the storing means after analysis ofthe print data of the identified print job is completed.
 67. The printcontrol program of claim 60, wherein said generation code skipsgeneration of image data, based on a number of pages for which ejectionfrom the print control apparatus is completed.
 68. The print controlprogram of claim 60, wherein the interrupt instruction is included inthe print job.
 69. The print control program of claim 60, furthercomprising code for a priority control step of controlling priorityprint processing such that the print data of a print job instructed forpriority print is analyzed after analysis of all the print data of acertain print job is completed by said generation code in response to apriority instruction from the external apparatus.
 70. The print controlprogram of claim 69, wherein the priority instruction is included in theprint job.
 71. The print control program of claim 61, further comprisingcode for a determination step of determining whether or not an interruptinstruction is permitted, wherein said interrupt control code does notinterrupt processing of the print job not identified by the interruptinstruction if it is determined by said determination code that theinstruction is not permitted.
 72. The print control program of claim 71,further comprising code for a setting step of setting whether or not theinterrupt instruction can be used, wherein said determination codedetermines that the interrupt instruction is permitted if it is set foruse by said setting code.
 73. A print control program executing a printcontrol method for controlling a print control apparatus for receiving aprint job including print data from an external apparatus and an imageforming section to form an image based on image data, said programcomprising: code for a storing step of storing print data in storingmeans; code for a generation step of generating image data by analyzingprint data; code for an image formation control step of causing theimage forming section to form the image based on the image datagenerated by said generation code; code for a suspend control step ofcontrolling such that the print data stored in the storing means, whichis print data of a print job instructed for suspension, is not analyzedby said generation code in response to a suspend instruction for theprint job from the external apparatus; code for a determination step ofdetermining whether or not suspended print jobs exist at power-off; andcode for a power supply control step of suspending power-off for adesignated amount of time if it is determined by said determination codethat a print job exists, wherein said storing code stores print data ofthe print job instructed for suspension in the storing means until theformation of an image based on image data generated from the print dataof the print job from the external apparatus by the image formingsection is completed.
 74. The print control program of claim 73, whereinsaid power supply control code does not perform power-off if there is nopower-off instruction during the designated amount of time and doesperform power-off if there is a power-off instruction during thedesignated amount of time.
 75. A print control program executing a printcontrol method for controlling a print control apparatus for receiving aprint job including print data from an external apparatus and forming animage in an image forming section based on image data, said programcomprising: code for a generation step of generating image data byanalyzing the print data; and code for an image formation control stepof causing the image forming section to form an image based on the imagedata generated by said generation code, wherein said program may beexecuted in a first mode in which, in response to a first modeinstruction identifying a print job, received from the externalapparatus, to be processed in the first mode, the first mode instructionbeing included in the identified print job, said generation code iscaused to suspend analysis of print data of of a print job notidentified in the first mode instruction and analyze print data of theprint job identified in the first mode instruction, and in a second modein which, in response to a second mode instruction identifying a printjob, received from the external apparatus, to be processed in the secondmode, the second mode instruction being included in the identified printjob, said generation code is caused to analyze print data of the printjob identified in the second mode instruction after completing analysisof print data of a first print job not identified in the second modeinstruction and before starting analysis of print data of a second printjob not identified in the second mode instruction, the first and secondprint jobs being received before the identified print job.
 76. The printcontrol program of claim 75, wherein, in the first mode, said imageformation control code is caused to suspend image formation in the imageforming section based on the image data relating to the print job notidentified in the first mode instruction.
 77. The print control programof claim 75, wherein, in the first mode, image formation is suspended inthe image forming section based on the image data relating to the printjob not identified in the first mode instruction.
 78. The print controlprogram of claim 75, wherein, in the first mode, image data generated bysaid generation code is deleted in response to the first modeinstruction.
 79. The print control program of claim 75, wherein, in thefirst mode, image data generated by said generation code is invalidatedin response to the first mode instruction.